forked from extern/ohmyzsh
90 lines
1.5 KiB
Plaintext
90 lines
1.5 KiB
Plaintext
#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
|