You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.5 KiB
89 lines
1.5 KiB
#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
|
|
|