about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDoug Kearns <dkearns@users.sourceforge.net>2010-07-15 03:16:43 +0000
committerDoug Kearns <dkearns@users.sourceforge.net>2010-07-15 03:16:43 +0000
commit39f8865732787563cdb2909f260206e435c69f0d (patch)
treec1e93e3c494ee418370adda323ed0d1b2d4f69f2
parent50f322298c0d2fbe6e31b70af45569aaf20d68c6 (diff)
downloadzsh-39f8865732787563cdb2909f260206e435c69f0d.tar.gz
zsh-39f8865732787563cdb2909f260206e435c69f0d.tar.xz
zsh-39f8865732787563cdb2909f260206e435c69f0d.zip
Michael Hwang: 28075: add gpg-zip completion and other improvements to _gpg
-rw-r--r--ChangeLog7
-rw-r--r--Completion/Unix/Command/_gpg327
2 files changed, 207 insertions, 127 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a8b6fc3d..3c6ede754 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-15  Doug Kearns  <dougkearns@gmail.com>
+
+	* Michael Hwang: 28075: Completion/Unix/Command/_gpg: add gpg-zip
+	completion and other general improvements.
+
 2010-07-13  Peter Stephenson  <pws@csr.com>
 
 	* Jörg Sommer: 28063: Completion/Unix/Command/_rubber: suppress
@@ -13367,5 +13372,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5023 $
+* $Revision: 1.5024 $
 *****************************************************
diff --git a/Completion/Unix/Command/_gpg b/Completion/Unix/Command/_gpg
index 368bfda2b..3f86411f6 100644
--- a/Completion/Unix/Command/_gpg
+++ b/Completion/Unix/Command/_gpg
@@ -1,134 +1,209 @@
-#compdef gpg gpgv
+#compdef gpg gpgv gpg-zip
 
 local curcontext="$curcontext" state line expl ret=1
+local -a gpgbasic gpgextra gpgv gpgzip
 typeset -A opt_args
 
-_arguments -C -s -S -A "-*" \
-  '(-s --sign)'{-s,--sign}'[make a signature]' \
-  '--clearsign[make a clear text signature]' \
-  '(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]' \
-  '(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined  with --sign]' \
-  '(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' \
-  '--store[store only]' \
-  '--decrypt[decrypt file or stdin]' \
-  '--verify[verify a signature]' \
-  '--verify-files[verify a list of files]' \
-  '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' \
-  '--decrypt-files[decrypt files]' \
-  '--list-keys[list all keys]' \
-  '--list-public-keys[list all public keys]' \
-  '--list-secret-keys[list all secret keys]' \
-  '--list-sigs[lists keys and signatures]:key attachment:->public-keys' \
-  '--list-options[modify what the various --list-* commands show]' \
-  '--check-sigs[list key, signatures and check them]:key attachment:->public-keys' \
-  '--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys' \
-  '--list-packets[list only the sequence of packets]' \
-  '--gen-key[generate a new pair key]' \
-  '--edit-key[a menu for edit yours keys]:key attachment:->public-keys' \
-  '--sign-key[sign a key]:key attachment:->public-keys'\
-  '--lsign-key[sign a key but mark as non-exportable]:key attachment:->public-keys' \
-  '--nrsign-key[sign a key non-revocably]' \
-  '--delete-key[remove key from public keyring]:key attachment:->public-keys' \
-  '--delete-secret-key[remove key from public & private keyring]:key attachment:->secret-keys' \
-  '--delete-secret-and-public-key:key attachment:->secret-keys' \
-  '--gen-revoke[generate a revocation certificate]' \
-  '--desig-revoke[generate a designated revocation certificate]' \
-  '--export[export all key from all keyrings]' \
-  '--send-keys[send keys to a keyserver]:key attachment:->public-keyids' \
-  '--export-all[export all key and not OpenPGP compatible keys]' \
-  '--export-secret-keys:key attachment:->secret-keys' \
-  '--export-secret-subkeys:key attachment:->secret-keys' \
-  '--import[import a gpg key from a file]:_files attachment:_files' \
-  '--fast-import[import a file without build trustdb]:_files attachment:_files' \
-  '--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids' \
-  '--refresh-keys[update all keys from a keyserver]' \
-  '--search-keys[search for keys on a key server]' \
-  '--update-trustdb[update the trust database]' \
-  '--check-trustdb[unattended trust database update]' \
-  '--fix-trustdb[fix a corrupted trust database]' \
-  '--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files' \
-  '--import-ownertrust[update the trustdb with a file]:file:_files' \
-  '--dearmor[de-Armor a file or stdin]' \
-  '--enarmor[en-Armor a file or stdin]' \
-  '--print-md[print message digests]:algorithm:->ciphers::file:_files' \
-  '--print-mds[print message digests]::file:_files' \
-  '--gen-random:count' --gen-prime \
-  '--version[print info on program version and supported algorithms]' \
-  '--warranty[print warranty info]' \
-  '(-h --help)'{-h,--help}'[display usage information]' \
-  '(-a --armor)'{-a,--armor}'[create ASCII armored output]' \
-  '(-o --output)'{-o+,--output}'[write output to file]:output file:_files' \
+gpgv=('(-q --quiet)*'{-v,--verbose}'[increase amount of output]'
+  '(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]'
+  '--keyring=[add specified file to list of keyrings]:file:_files'
+  '--'{status,logger}'-fd:file descriptor:_file_descriptors'
+  '--ignore-time-conflict'
+  '--homedir:directory:_directories')
+
+gpgzip=('--gpg[command to use instead of gpg]:command:_command'
+  '--gpg-args[gpg arguments]:gpg arguments:'
+  '--tar[command to use instead of tar]:command:_command'
+  '--tar-args[tar arguments]:tar arguments:'
+  '--list-archive[list archive contents]')
+
+gpgbasic=('(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined  with --sign]'
+  {-d,--decrypt}'[decrypt file or stdin]'
+  '(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]'
+  '(-s --sign)'{-s,--sign}'[make a signature]'
+  '*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-keys'
   '(-u --local-user)'{-u+,--local-user}'[use name as the user ID to sign]:user attachment:_users'\
-  '--default-key[specify default user-id for signatures]:key:->secret-keys' \
-  '*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-keys' \
-  '--default-recipient[specify default recipient]:recipient:->public-keys' \
-  '--default-recipient-self[use default key as default recipient]' \
-  '--no-default-recipient[reset default recipient]' \
-  '*--encrypt-to[specify recipient]:key:->public-keys' \
-  '(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]' \
-  '(-q --quiet)*'{-v,--verbose}'[increase amount of output]' \
-  '(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]' \
-  '(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))' \
-  '(-t --textmode)'{-t,--textmode}'[use canonical text mode]' \
-  '(-n --dry-run)'{-n,--dry-run}"[don't make any changes]" \
-  '(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]' \
-  '(-i --interactive --no-batch)--batch[use batch mode]' \
-  '--no-tty[never output to tty]' \
-  '(--batch)--no-batch[disable batch mode]' \
-  '(--no)--yes[assume "yes" on most questions]' \
-  '(--yes)--no[assume "no" on most questions]' \
-  '--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))' \
-  '--trusted-key[assume that the specified key is trustworthy]:long key id' \
-  '--always-trust[skip key validation]' \
-  '--keyserver[specify key server to use]:key server:_hosts' \
-  '--keyserver-options[specify keyserver options]:options' \
-  '--import-options[specify options for importing keys]:options' \
-  '--export-options[specify options for exporting keys]:options' \
-  --show-photos --no-show-photos '--photo-viewer:command:_command_names -e'\
-  --exec-path:path:_dir_list' \
-  --show-keyring[display keyring name when listing keys]' \
-  '--keyring=[add specified file to list of keyrings]:file:_files' \
-  '--secret-keyring[add specified file to list of secret keyrings]:file:_files' \
-  --homedir:directory:_directories \
-  '--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)' \
-  '--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]' \
-  '(--no-options)--options[specify file to read options from]:options file:_files' \
-  "(--options)--no-options[don't read options file]" \
-  --{status,logger,attribute,passphrase,command}-fd:file\ descriptor:_file_descriptors \
-  '--sk-comments[include secret key comments when exporting keys]' \
-  '(--emit-version)--no-version[omit version string in clear text signatures]' \
-  '(--no-version)--emit-version[force writing of version string in clear text signatures]' \
-  '(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value' \
-  '(--no-show-notation)--show-notation[show key signature notations]' \
-  "(--show-notation)--no-show-notation[don't show key signature notations]" \
-  '--set-policy-url:policy URL' \
-  '(--no-show-policy-url)--show-policy-url' \
-  "(--show-policy-url)--no-show-policy-url" \
-  '--set-filename[specify file which is stored in messages]:file:_files' \
-  '(--for-your-eyes-only)--for-your-eyes-only' \
-  "(--for-your-eyes-only)--no-for-your-eyes-only" \
-  --completes-needed:number --marginals-needed:number --max-cert-depth:number \
-  --{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers' \
-  --s2k-mode:value --simple-sk-checksum \
-  '--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))' \
-  --no-sig-cache --no-sig-create-check --{,no-}auto-check-trustdb --throw-keyid \
-  --not-dash-escaped --escape-from-lines --use-agent \
-  --rfc1991 --{,no-}pgp2 --{,no}pgp6 --{,no}pgp7 --openpgp \
-  --{,no-}force-v3-sigs --{,no}force-v4-certs --force-mdc --disable-mdc \
-  --{,no-}allow-non-selfsigned-uid --allow-freeform-uid \
-  --ignore-time-conflict --ignore-valid-from \
-  --ignore-crc-error --ignore-mdc-error --lock-once --lock-multiple --lock-never \
-  --no-random-seed-file --no-verbose --no-greeting --no-secmem-warning \
-  --no-permission-warning --no-mdc-warning --no-armor --no-default-keyring \
-  --skip-verify --with-colons --with-key-data --with-fingerprint \
-  --fast-list-mode --fixed-list-mode --list-only --no-literal --set-filesize \
-  --emulate-md-encode-bug --show-session-key --override-session-key:string \
-  --{,no-}ask-sig-expire --{,no}ask-cert-expire --{,no}expert \
-  --merge-only --allow-secret-key-import --try-all-secrets \
-  --enable-special-filenames --no-expensive-trust-checks --group:name=value \
-  --preserve-permissions --personal-{cipher,digest,compress}-preferences:string \
-  --default-preference-list:string \
-  '*:args:->args' && ret=0
+  '(-o --output)'{-o+,--output}'[write output to file]:output file:_files'
+  '(-h --help)'{-h,--help}'[display usage information]'
+  '--version[print info on program version and supported algorithms]')
+
+gpgextra=('--decrypt-files[decrypt multiple files]'
+  '(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]'
+  '--clearsign[make a clear text signature]'
+  '--store[store only]'
+  '--verify[verify a signature]'
+  '--verify-files[verify a list of files]'
+  '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]'
+  '--list-keys[list all keys]'
+  '--list-public-keys[list all public keys]'
+  '--list-secret-keys[list all secret keys]'
+  '--list-sigs[lists keys and signatures]:key attachment:->public-keys'
+  '--list-options[modify what the various --list-* commands show]'
+  '--check-sigs[list key, signatures and check them]:key attachment:->public-keys'
+  '--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys'
+  '--list-packets[list only the sequence of packets]'
+  '--gen-key[generate a new pair key]'
+  '--edit-key[a menu for edit yours keys]:key attachment:->public-keys'
+  '--sign-key[sign a key]:key attachment:->public-keys'\
+  '--lsign-key[sign a key but mark as non-exportable]:key attachment:->public-keys'
+  '--nrsign-key[sign a key non-revocably]'
+  '--delete-key[remove key from public keyring]:key attachment:->public-keys'
+  '--delete-secret-key[remove key from public & private keyring]:key attachment:->secret-keys'
+  '--delete-secret-and-public-key:key attachment:->secret-keys'
+  '--gen-revoke[generate a revocation certificate]'
+  '--desig-revoke[generate a designated revocation certificate]'
+  '--export[export all key from all keyrings]'
+  '--send-keys[send keys to a keyserver]:key attachment:->public-keyids'
+  '--export-all[export all key and not OpenPGP compatible keys]'
+  '--export-secret-keys:key attachment:->secret-keys'
+  '--export-secret-subkeys:key attachment:->secret-keys'
+  '--import[import a gpg key from a file]:_files attachment:_files'
+  '--fast-import[import a file without build trustdb]:_files attachment:_files'
+  '--fetch-keys[fetch key at URIs]:uri:'
+  '--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids'
+  '--refresh-keys[update all keys from a keyserver]'
+  '--search-keys[search for keys on a key server]'
+  '--update-trustdb[update the trust database]'
+  '--check-trustdb[unattended trust database update]'
+  '--fix-trustdb[fix a corrupted trust database]'
+  '--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files'
+  '--import-ownertrust[update the trustdb with a file]:file:_files'
+  '--dearmor[de-Armor a file or stdin]'
+  '--enarmor[en-Armor a file or stdin]'
+  '--print-md[print message digests]:algorithm:->ciphers::file:_files'
+  '--print-mds[print message digests]::file:_files'
+  '--gen-random:count' '--gen-prime'
+  '--warranty[print warranty info]'
+  '(-a --armor)'{-a,--armor}'[create ASCII armored output]'
+  '--default-key[specify default user-id for signatures]:key:->secret-keys'
+  '--default-recipient[specify default recipient]:recipient:->public-keys'
+  '--default-recipient-self[use default key as default recipient]'
+  '--no-default-recipient[reset default recipient]'
+  '*--encrypt-to[specify recipient]:key:->public-keys'
+  '(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]'
+  '(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))'
+  '(-t --textmode)'{-t,--textmode}'[use canonical text mode]'
+  '(-n --dry-run)'{-n,--dry-run}"[don't make any changes]"
+  '(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]'
+  '(-i --interactive --no-batch)--batch[use batch mode]'
+  '--no-tty[never output to tty]'
+  '(--batch)--no-batch[disable batch mode]'
+  '(--no)--yes[assume "yes" on most questions]'
+  '(--yes)--no[assume "no" on most questions]'
+  '--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))'
+  '--trusted-key[assume that the specified key is trustworthy]:long key id'
+  '--always-trust[skip key validation]'
+  '--keyserver[specify key server to use]:key server:_hosts'
+  '--keyserver-options[specify keyserver options]:options'
+  '--import-options[specify options for importing keys]:options'
+  '--export-options[specify options for exporting keys]:options'
+  '--show-photos' '--no-show-photos' '--photo-viewer:command:_command_names -e'
+  '--exec-path:path:_dir_list'
+  '--show-keyring[display keyring name when listing keys]'
+  '--secret-keyring[add specified file to list of secret keyrings]:file:_files'
+  '--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)'
+  '--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]'
+  '(--no-options)--options[specify file to read options from]:options file:_files'
+  "(--options)--no-options[don't read options file]"
+  '--'{attribute,passphrase,command}'-fd:file descriptor:_file_descriptors'
+  '--sk-comments[include secret key comments when exporting keys]'
+  '(--emit-version)--no-emit-version[omit version string in clear text signatures]'
+  '(--no-emit-version)--emit-version[force writing of version string in clear text signatures]'
+  '(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value'
+  '(--no-show-notation)--show-notation[show key signature notations]'
+  "(--show-notation)--no-show-notation[don't show key signature notations]"
+  '--set-policy-url:policy URL'
+  '(--no-show-policy-url)--show-policy-url'
+  '(--show-policy-url)--no-show-policy-url'
+  '--set-filename[specify file which is stored in messages]:file:_files'
+  '(--for-your-eyes-only)--for-your-eyes-only'
+  '(--for-your-eyes-only)--no-for-your-eyes-only'
+  '--completes-needed:number' '--marginals-needed:number' '--max-cert-depth:number'
+  '--'{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers'
+  '--s2k-mode:value' '--simple-sk-checksum'
+  '--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))'
+  '--no-sig-cache' '--no-sig-create-check' '--'{,no-}'auto-check-trustdb' '--throw-keyid'
+  '--not-dash-escaped' '--'{,no-}'escape-from-lines' '--'{,no-}'use-agent'
+  '--rfc1991' '--'{,no-}'pgp2' '--'{,no}'pgp6' '--'{,no}'pgp7' '--openpgp'
+  '--'{,no-}'force-v3-sigs' '--'{,no}'force-v4-certs' '--force-mdc' '--disable-mdc'
+  '--'{,no-}'allow-non-selfsigned-uid' '--allow-freeform-uid'
+  '--ignore-valid-from'
+  '--ignore-crc-error' '--ignore-mdc-error' '--lock-once' '--lock-multiple' '--lock-never'
+  '--no-random-seed-file' '--no-verbose' '--no-greeting' '--no-secmem-warning'
+  '--no-permission-warning' '--no-mdc-warning' '--no-armor' '--no-default-keyring'
+  '--skip-verify' '--with-colons' '--with-key-data' '--with-fingerprint'
+  '--fast-list-mode' '--fixed-list-mode' '--list-only' '--no-literal' '--set-filesize'
+  '--emulate-md-encode-bug' '--show-session-key' '--override-session-key:string'
+  '--'{,no-}'ask-sig-expire' '--'{,no}'ask-cert-expire' '--'{,no}'expert'
+  '--merge-only' '--allow-secret-key-import' '--try-all-secrets'
+  '--enable-special-filenames' '--no-expensive-trust-checks' '--group:name=value'
+  '--preserve-permissions' '--personal-'{cipher,digest,compress}'-preferences:string'
+  '--card-edit[present smartcard menu]' '--card-status[show smartcard content]'
+  '--change-pin[present menu to change smartcard pin]'
+  '--list-config[display internal configuration parameters]'
+  '--hidden-recipient[hidden recipient]:recipient:->public-keys'
+  '--dump-options[show all options]' '--default-preference-list:string'
+  '--fetch-keys:URIs:' '--gpgconf-list' '--gpgconf-test'
+  '--hidden-encrypt-to:recipient:->public-keys'
+  '--compress-level:integer:'
+  '--bzip2-compress-level:integer:' '--bzip2-decompress-lowmem'
+  '--default-sig-expire' '--default-cert-expire' '--no-ask-cert-expire'
+  '--default-cert-level:integer:'
+  '--min-cert-level' '--ask-cert-level' '--no-ask-cert-level'
+  '--max-output[maximum output generated when processing file]:bytes:'
+  '--gpg-agent-info[override GPG_AGENT_INFO]:'
+  '--primary-keyring:file:_files'
+  '--'{,no-}'verify-options:parameters:_multi_parts -q -S, ","
+    "(show-photos show-policy-urls show-notations show-std-notations
+    show-user-notations show-keyserver-urls show-uid-validity show-unusable-uids
+    show-primary-uid-only pka-lookups pka-trust-increase)"'
+  '--debug:flags:' '--debug-all' '--status-file:file:'
+  '--attribute-file:file:' '--load-extension:file:_files'
+  '--gnupg' '--rfc2440' '--rfc4880' '--pgp8'
+  '--s2k-count:integer:' '--'{,no-}'throw-keyids'
+  '--sig-notation:name=value:' '--cert-notation:name=value:'
+  '--passphrase-file:file:_files' '--passphrase-repeat:integer:'
+  '--command-file:file:_files' '--trustdb-name:file:_files'
+  '--'{,no-}'require-secmem'
+  '--trust-model:trust model:((pgp classic direct always auto))'
+  '--sig-policy-url:string:' '--cert-policy-url:string:'
+  '--sig-keyserver-url:string:' '--comment[comment]:comment:'
+  '--no-comments[disable comments]'
+  '--logger-file[write log to file]:file:_files'
+  '--'{,no-}'use-embedded-filename'
+  '--rebuild-keydb-caches[create signature caches in keyring]'
+  '--default-keyserver-url:name:'
+  '--display-charset[set native charset]:charset:((iso-8859-1 iso-8859-2 iso-8859-15 koi8-r utf-8))'
+  '--ungroup[remove group]:group name:'
+  '--no-groups[remove all entries from --group list]'
+  '--'{,no}'mangle-dos-filenames'
+  '--enable-progress-filter[enable progress status output]'
+  '--multifile[process multiple files]'
+  '--keyid-format[key id format]:key format:((short 0xshort long 0xlong))'
+  '--exit-on-status-write-error[exit immediately on error write]'
+  '--limit-card-insert-tries:integer:'
+  '--reader-port[card reader port]:port:'
+  '--ctapi-driver[file to use to access smartcard reader]:file:_files'
+  '--pcsc-driver[file to use to access smartcard reader]:file:_files'
+  '--disable-ccid' '--debug-ccid-driver'
+  '--'{enable,disable}'-dsa2'
+  '--'{,no-}'allow-multiple-messages' '--'{,no-}'require-cross-certification'
+  '--auto-key-locate:parameters:' '--no-auto-key-locate'
+  '--dump-options[show all options]')
+
+case "$service" in
+  gpg)
+    _arguments -C -s -S -A "-*" $gpgbasic $gpgextra $gpgv '*:args:->args'
+    ;;
+
+  gpgv)
+    _arguments -C -s -S -A "-*" $gpgv '*:args:->args'
+    ;;
+
+  gpg-zip)
+    _arguments -C -s -S -A "-*" $gpgbasic $gpgzip '*:args:->args'
+    ;;
+esac
 
 if [[ $state = args ]]; then
   if (( ${+opt_args[--export]} || ${+opt_args[--list-keys]} || ${+opt_args[--list-public-keys]} )); then