summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/macports
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/macports')
-rw-r--r--oh-my-zsh/plugins/macports/README.md47
-rw-r--r--oh-my-zsh/plugins/macports/_port92
-rw-r--r--oh-my-zsh/plugins/macports/macports.plugin.zsh44
3 files changed, 183 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/macports/README.md b/oh-my-zsh/plugins/macports/README.md
new file mode 100644
index 0000000..09bd42d
--- /dev/null
+++ b/oh-my-zsh/plugins/macports/README.md
@@ -0,0 +1,47 @@
+# Macports plugin
+
+This plugin adds completion for the package manager [Macports](https://macports.com/),
+as well as some aliases for common Macports commands.
+
+To use it, add `macports` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... macports)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+|-------|------------------------------------|--------------------------------------------------------------|
+| pc | `sudo port clean --all installed` | Clean up intermediate installation files for installed ports |
+| pi | `sudo port install` | Install package given as argument |
+| pli | `port livecheck installed` | Check for updates for installed ports |
+| plm | `port-livecheck-maintainer` | Check for updates of ports mainained by the specified users |
+| psu | `sudo port selfupdate` | Update ports tree with MacPorts repository |
+| puni | `sudo port uninstall inactive` | Uninstall inactive ports |
+| puo | `sudo port upgrade outdated` | Upgrade ports with newer versions available |
+| pup | `psu && puo` | Update ports tree, then upgrade ports to newest versions |
+
+## Commands
+
+### port-livecheck-maintainer
+
+```text
+Usage:
+ port-livecheck-maintainer
+ port-livecheck-maintainer (maintainer)+
+ port-livecheck-maintainer -h|--help
+
+Check
+
+Options:
+ maintainer maintainer id
+ -h print this help message and exit
+```
+
+Checks whether updates are available for ports whose maintainer is the current
+user, or any of a specified list of maintainer expressions. The current user
+maintainer id is retrieved as follows:
+
+* The value of the `MACPORTS_MAINTAINER` variable, if set and not null.
+* The value of the `USER` variable.
diff --git a/oh-my-zsh/plugins/macports/_port b/oh-my-zsh/plugins/macports/_port
new file mode 100644
index 0000000..897598a
--- /dev/null
+++ b/oh-my-zsh/plugins/macports/_port
@@ -0,0 +1,92 @@
+#compdef port
+
+local subcmds
+
+# we cache the list of ports
+# we shall use some cache policy to avoid problems with new ports
+if (( ! $+portlist )); then
+ portlist=($(port echo all; echo "all current active inactive installed uninstalled outdated"))
+fi
+
+subcmds=(
+'activate'
+'archive'
+'build'
+'cat'
+'clean'
+'configure'
+'contents'
+'deactivate'
+'dependents'
+'deps'
+'destroot'
+'dir'
+'distcheck'
+'distclean'
+'dmg'
+'echo'
+'edit'
+'extract'
+'fetch'
+'file'
+'help'
+'info'
+'install'
+'installed'
+'list'
+'livecheck'
+'location'
+'mpkg'
+'outdated'
+'patch'
+'pkg'
+'provides'
+'rdependents'
+'rdeps'
+'reclaim'
+'rpmpackage'
+'search'
+'selfupdate'
+'sync'
+'test'
+'unarchive'
+'uninstall'
+'upgrade'
+'variants'
+'version'
+)
+
+_arguments -C \
+'-v[verbose mode (generate verbose messages)]' \
+'-d[debug mode (generate debugging messages)]' \
+'-q[quiet mode (suppress messages)]' \
+'-D[specify portdir]' \
+'-k[keep mode (do not autoclean after install)]' \
+'-n[dont follow dependencies in upgrade (only for upgrading)]' \
+'-a[upgrade all installed ports (only for upgrading)]' \
+'-u[uninstall non-active ports when upgrading and uninstalling]' \
+'-f[force mode (ignore state file)]' \
+'-s[source-only mode]' \
+'-b[binary-only mode]' \
+'-o[honor state files older than Portfile]' \
+'*::command:->command' \
+&& return 0
+
+case $state in
+ command)
+ if ((CURRENT == 1)); then
+ state=subcommands
+ else
+ state=portname
+ fi
+ ;;
+esac
+
+case $state in
+ subcommands)
+ _describe -t commands 'port commands' subcmds
+ ;;
+ portname)
+ _describe -t commands 'available ports' portlist
+ ;;
+esac
diff --git a/oh-my-zsh/plugins/macports/macports.plugin.zsh b/oh-my-zsh/plugins/macports/macports.plugin.zsh
new file mode 100644
index 0000000..d438057
--- /dev/null
+++ b/oh-my-zsh/plugins/macports/macports.plugin.zsh
@@ -0,0 +1,44 @@
+alias pc="sudo port clean --all installed"
+alias pi="sudo port install"
+alias pli="port livecheck installed"
+alias plm="port-livecheck-maintainer"
+alias psu="sudo port selfupdate"
+alias puni="sudo port uninstall inactive"
+alias puo="sudo port upgrade outdated"
+alias pup="sudo port selfupdate && sudo port upgrade outdated"
+
+port-livecheck-maintainer() {
+ (( ${+commands[port]} == 0 )) || {
+ print -- "port: not found" >&2
+ return 1
+ }
+
+ local -a help_flag
+ zparseopts -D -E h=help_flag -help=help_flag
+
+ (( ${#help_flag} )) && {
+ cat << EOF >&2
+Usage:
+ port-livecheck-maintainer
+ port-livecheck-maintainer (maintainer)+
+ port-livecheck-maintainer -h|--help
+
+Check
+
+Options:
+ maintainer maintainer id
+ -h print this help message and exit
+EOF
+ return 1
+ }
+
+ if (( $# == 0 )); then
+ local default=${MACPORTS_MAINTAINER:-${USER}}
+ port livecheck maintainer:${default}
+ return $?
+ fi
+
+ for i in $@; do
+ port livecheck maintainer:${i}
+ done
+}