aboutsummaryrefslogtreecommitdiff
path: root/.oh-my-zsh/plugins/macports
diff options
context:
space:
mode:
authorMarvin Borner2019-03-05 01:09:01 +0100
committerMarvin Borner2019-03-05 01:09:01 +0100
commit55457187d18221e76bd12f0fb2cfab65c49b92fb (patch)
tree8db042d2d80710d54100c2709ad4332153ac848a /.oh-my-zsh/plugins/macports
Initial commit
Diffstat (limited to '.oh-my-zsh/plugins/macports')
-rw-r--r--.oh-my-zsh/plugins/macports/README.md21
-rw-r--r--.oh-my-zsh/plugins/macports/_port89
-rw-r--r--.oh-my-zsh/plugins/macports/macports.plugin.zsh6
3 files changed, 116 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..ded823f
--- /dev/null
+++ b/.oh-my-zsh/plugins/macports/README.md
@@ -0,0 +1,21 @@
+# 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 |
+| 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 |
diff --git a/.oh-my-zsh/plugins/macports/_port b/.oh-my-zsh/plugins/macports/_port
new file mode 100644
index 0000000..06d7fb4
--- /dev/null
+++ b/.oh-my-zsh/plugins/macports/_port
@@ -0,0 +1,89 @@
+#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'
+'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..d1fde30
--- /dev/null
+++ b/.oh-my-zsh/plugins/macports/macports.plugin.zsh
@@ -0,0 +1,6 @@
+alias pc="sudo port clean --all installed"
+alias pi="sudo port install"
+alias psu="sudo port selfupdate"
+alias puni="sudo port uninstall inactive"
+alias puo="sudo port upgrade outdated"
+alias pup="psu && puo"