From 356f432985b76ce8a0fe71fef2ec433517605477 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Wed, 14 Jan 2004 17:01:11 +0000 Subject: 19364: new completions for aptitude, getent and catcgsegv --- ChangeLog | 5 ++++ Completion/Debian/Command/.distfiles | 2 +- Completion/Debian/Command/_aptitude | 50 ++++++++++++++++++++++++++++++++++++ Completion/Unix/Command/.distfiles | 2 +- Completion/Unix/Command/_getent | 50 ++++++++++++++++++++++++++++++++++++ Completion/Zsh/Command/_precommand | 2 +- 6 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 Completion/Debian/Command/_aptitude create mode 100755 Completion/Unix/Command/_getent diff --git a/ChangeLog b/ChangeLog index cd1fe99b6..3aad4fc44 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2004-01-14 Oliver Kiddle + * 19369: Completion/Unix/Command/_getent, + Completion/Debian/Command/_aptitude, + Completion/Zsh/Command/_precommand: complete for getent, + aptitude and catchsegv + * spotted by Bart: 19365: Completion/Unix/Type/_perl_modules: avoid use of $words[0] diff --git a/Completion/Debian/Command/.distfiles b/Completion/Debian/Command/.distfiles index d0406bfc7..bed75015a 100644 --- a/Completion/Debian/Command/.distfiles +++ b/Completion/Debian/Command/.distfiles @@ -1,6 +1,6 @@ DISTFILES_SRC=' .distfiles -_apt _apt-show-versions +_apt _aptitude _apt-show-versions _bts _bug _debchange _dpkg _dpkg_source _dput _dupload _update-alternatives _make-kpkg _debfoster diff --git a/Completion/Debian/Command/_aptitude b/Completion/Debian/Command/_aptitude new file mode 100644 index 000000000..1b539a66d --- /dev/null +++ b/Completion/Debian/Command/_aptitude @@ -0,0 +1,50 @@ +#compdef aptitude + +local curcontext="$curcontext" state line cmds ret=1 + +_arguments -C \ + '(- 1 *)'{-h,--help}'[display help information]' \ + '(- 1 *)--version[display version information]' \ + '(-s --simulate)'{-s,--simulate}'[print actions without performing them]' \ + '(-d --download-only)'{-d,--download-only}"[just download packages - don't install]" \ + '(-P --prompt)'{-P,--prompt}'[always display a prompt]' \ + '(-y --assume-yes)'{-y,--assume-yes}'[assume yes answer to questions]' \ + '(-F --display-format)'{-F,--display-format}'[specify output format for search command]:format' \ + '(-U --sort)'{-U,--sort}'[specify sort order]:sort order:()' \ + '(-w --width)'{-w,--width}'[specify output width]:width' \ + '-f[aggressivley try to fix dependencies of broken packages]' \ + '(--without-recommends)--with-recommends[install recommended packages when installing new packages]' \ + '(--without-suggests)--with-suggests[install suggested packages when installing new packages]' \ + '(--with-recommends)--without-recommends[ignore recommended packages when installing new packages]' \ + '(--with-suggests)--without-suggests[ignore suggested packages when installing new packages]' \ + '1: :->cmds' \ + '*: :->args' && ret=0 + +case $state in + cmds) + cmds=( ${${(M)${(f)"$(aptitude -h 2>/dev/null)"}:#* - *}/(#b) (*[^ ]) #- (*)/$match[1]:$match[2]:l}) + + _describe -t commands 'aptitude command' cmds && ret=0 + ;; + args) + case $line[1] in + search) + _message -e patterns pattern + ;; + download) + _deb_packages avail + ;; + remove|purge|hold) + _deb_packages installed + ;; + install|markauto|unmarkauto) + _deb_packages uninstalled + ;; + *) + (( ret )) && _message 'no more arguments' + ;; + esac + ;; +esac + +return ret diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles index 04e83bead..d3ba38e00 100644 --- a/Completion/Unix/Command/.distfiles +++ b/Completion/Unix/Command/.distfiles @@ -21,6 +21,6 @@ _netcat _larch _texinfo _figlet _elinks _tidy _global _ant _lsof _mt _xmlsoft _perforce _python _antiword _screen _renice _apm _ecasound _gpg _subversion _aap _sablotron _nmap -_chmod _du +_chmod _du _getent _nice _rar _vorbis ' diff --git a/Completion/Unix/Command/_getent b/Completion/Unix/Command/_getent new file mode 100755 index 000000000..57d2ec256 --- /dev/null +++ b/Completion/Unix/Command/_getent @@ -0,0 +1,50 @@ +#compdef getent + +local curcontext="$curcontext" state line expl ret=1 +local services databases keys +local -a args +typeset -A opt_args + +if _pick_variant -r is_gnu gnu=GNU unix --version; then + args+=( + '(- 1 *)'{-\?,--help}'[display help information]' + '(- 1 *)--usage[display a short usage message]' + '(- 1 *)'{-V,--version}'[display version information]' + {-s,--service=}'[specify service configuration to use]:service:->services' + ) +fi + +_arguments -C "$args[@]" \ + '1:database:->databases' \ + '*:key:->keys' && ret=0 + +case $state in + services) + services=( /lib/libnss*(-.:fr:t:s/libnss_//) ) + _wanted services expl service compadd ${services%-*} && ret=0 + ;; + databases) + if [[ $is_gnu = gnu ]]; then + databases=( ${=${${(f)"$(_call_program databases $words[1] --help \ + 2>/dev/null)"}[(r)Supported*,-1]}[2,-1]} ) + else + databases=( passwd group hosts ipnodes services protocols ethers networks netmasks ) + fi + _wanted databases expl database compadd -a databases && ret=0 + ;; + keys) + keys=( ${(f)"$(_call_program keys $words[1] ${(kv)opt_args[(i)-s|--service]} $line[1] 2>/dev/null)"} ) + case $line[1] in + *hosts) _wanted keys expl key compadd ${=keys#* } && ret=0 ;; + networks|rpc|protocols|services) + _wanted keys expl key compadd ${=keys%% *} && ret=0 + ;; + aliases|passwd|shadow|group) + _wanted keys expl key compadd ${keys%%:*} && ret=0 + ;; + *) _message -e keys key;; + esac + ;; +esac + +return ret diff --git a/Completion/Zsh/Command/_precommand b/Completion/Zsh/Command/_precommand index 075f086a9..2314b90b7 100644 --- a/Completion/Zsh/Command/_precommand +++ b/Completion/Zsh/Command/_precommand @@ -1,4 +1,4 @@ -#compdef - nohup env eval time rusage noglob nocorrect exec +#compdef - nohup env eval time rusage noglob nocorrect exec catchsegv shift words (( CURRENT-- )) -- cgit 1.4.1