about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2004-01-14 17:01:11 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2004-01-14 17:01:11 +0000
commit356f432985b76ce8a0fe71fef2ec433517605477 (patch)
tree83e790612a5ba2ea1d2ba262a5fdb9fa066c4751
parent87821ed853fba324a4249786af4984a984b96dac (diff)
downloadzsh-356f432985b76ce8a0fe71fef2ec433517605477.tar.gz
zsh-356f432985b76ce8a0fe71fef2ec433517605477.tar.xz
zsh-356f432985b76ce8a0fe71fef2ec433517605477.zip
19364: new completions for aptitude, getent and catcgsegv
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Debian/Command/.distfiles2
-rw-r--r--Completion/Debian/Command/_aptitude50
-rw-r--r--Completion/Unix/Command/.distfiles2
-rwxr-xr-xCompletion/Unix/Command/_getent50
-rw-r--r--Completion/Zsh/Command/_precommand2
6 files changed, 108 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index cd1fe99b6..3aad4fc44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2004-01-14  Oliver Kiddle  <opk@zsh.org>
 
+	* 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-- ))