diff options
author | Daniel Wallace <daniel.wallace@gatech.edu> | 2012-04-30 04:40:42 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-05-01 00:37:18 +0200 |
commit | 7fd0d037951f47329b869f8bf06368026a0c3ac0 (patch) | |
tree | 1aa4c8cb71d0b39b51aefa86f6f74633d3abfd9d | |
parent | d214c2347adc601554aaf524b224ce9bc182faed (diff) | |
download | pacman-7fd0d037951f47329b869f8bf06368026a0c3ac0.tar.gz pacman-7fd0d037951f47329b869f8bf06368026a0c3ac0.tar.xz |
zsh completion for makepkg
This adds zsh completion for makepkg to the _pacman file
in /usr/share/zsh/site-functions/. it completes makepkg and allows for
stacking of flags like -si, -sci, et cetera.
Signed-off-by: Daniel Wallace <daniel.wallace@gatech.edu>
-rw-r--r-- | contrib/zsh_completion.in | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in index adbe6780..2de47cd8 100644 --- a/contrib/zsh_completion.in +++ b/contrib/zsh_completion.in @@ -430,8 +430,99 @@ _keys() { _describe -t modules 'keys in keyring' keys && return 0 } +_makepkg_shortopts=( + '*-s[Install missing dependencies with pacman]' + '*-i[Install package after successful build]' + '*-A[Ignore incomplete arch field in PKGBUILD]' + '*-c[Clean up work files after build]' + '*-d[Skip all dependency checks]' + '*-e[Do not extract source files (use existing src/ dir)]' + '*-f[Overwrite existing package]' + '*-g[Generate integrity checks for source files]' + '*-h[Show help message and exit]' + '*-L[Log package build process]' + '*-m[Disable colorized output messages]' + '*-o[Download and extract files only]' + '-p[Use an alternate build script (instead of 'PKGBUILD')]: :_files' + '*-r[Remove installed dependencies after a successful build]' + '*-R[Repackage contents of the package without rebuilding]' + '*-S[Generate a source-only tarball without downloading sources]' + ) + +_makepkg_action_none(){ + _arguments \ + "$_makepkg_shortopts[@]"\ + "$_makepkg_longopts[@]" +} +_makepkg_longopts=( + '--ignorearch[Ignore incomplete arch field in PKGBUILD]' + '--clean[Clean up work files after build]' + '--nodeps[Skip all dependency checks]' + '--noextract[Do not extract source files (use existing src/ dir)]' + '--force[Overwrite existing package]' + '--geninteg[Generate integrity checks for source files]' + '--help[Show help message and exit]' + '--install[Install package after successful build]' + '--log[Log package build process]' + '--nocolor[Disable colorized output messages]' + '--nobuild[Download and extract files only]' + '--rmdeps[Remove installed dependencies after a successful build]' + '--repackage[Repackage contents of the package without rebuilding]' + '--syncdeps[Install missing dependencies with pacman]' + '--source[Generate a source-only tarball without downloading sources]' + '--allsource[Generate a source-only tarball including downloaded source]' + '--asroot[Allow makepkg to run as root user]' + '--check[Run check() function in the PKGBUILD]' + '--config[Use an alternate config file instead of '/etc/makepkg.conf']: :_files' + '--holdver[Prevent automatic version bumping for development PKGBUILDs]' + '--key[Specify key to use for gpg signing instead of the default]: :_keys' + '--nocheck[Do not run the check() function in the PKGBUILD]' + '--nosign[Do not create a signature for the package]' + '--pkg[Only build listed packages from a split package]' + '--sign[Sign the resulting package with gpg]' + '--skipchecksums[Do not verify checksums of the source files]' + '--skipinteg[do not perform any verification checks on source files]' + '--skippgpcheck[Do not verify source files with PGP signatures]' + '--noconfirm[do not ask for confirmation when resolving dependencies]' + '--noprogressbar[Do not show a progress bar when downloading files]' + ) +_makepkg(){ + case $words[CURRENT] in + -*) + _arguments -s -w : \ + "$_makepkg_shortopts[@]" \ + "$_makepkg_longopts[@]" + ;; + --* ) + _arguments -s \ + "$_makepkg_longopts[@]" + ;; + - )_makepkg_action_none ;; + * ) + i=$# + while [[ $words[i] != -* ]] && [[ $words[$i] != "makepkg" ]];do + i=$((i-1)); + done + case $words[$i] in + -*) + _arguments -s -w : \ + "$_makepkg_shortopts[@]" \ + "$_makepkg_longopts[@]" + ;; + --* ) + _arguments -s \ + "$_makepkg_longopts[@]" + ;; + - )_makepkg_action_none ;; + * ) return 1 ;; + esac + ;; + esac +} _pacman_comp() { case "$service" in + makepkg) + _makepkg "$@";; pacman-key) _pacman_key "$@";; pacman) |