From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6581 invoked by alias); 16 Aug 2011 19:39:45 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 29690 Received: (qmail 18227 invoked from network); 16 Aug 2011 19:39:42 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at finalrewind.org does not designate permitted sender hosts) Date: Tue, 16 Aug 2011 21:39:38 +0200 From: Daniel Friesel To: zsh-workers@zsh.org Subject: Re: [PATCH] Add completions for cryptsetup and twidge Message-ID: <20110816193938.GA23478@derf.homelinux.org> References: <20110816183921.GA10577@derf.homelinux.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="JYK4vJDZwFMowpUq" Content-Disposition: inline In-Reply-To: <20110816183921.GA10577@derf.homelinux.org> User-Agent: Mutt/1.5.21 (2010-09-15) --JYK4vJDZwFMowpUq Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR" Content-Disposition: inline --T4sUOijqQbZv57TR Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Updated patch (redefine _cryptsetup, pass on "$@" in _twidge) --T4sUOijqQbZv57TR Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-Add-completions-for-cryptsetup-and-twidge.patch" Content-Transfer-Encoding: quoted-printable =46rom ccf9776a095d663cd8c642dc163e546ed2da2c62 Mon Sep 17 00:00:00 2001 =46rom: Daniel Friesel Date: Tue, 16 Aug 2011 20:16:52 +0200 Subject: [PATCH] Add completions for cryptsetup and twidge --- Completion/Linux/Command/_cryptsetup | 103 ++++++++++++++++++++++++++++++= ++++ Completion/Unix/Command/_twidge | 77 +++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 0 deletions(-) create mode 100644 Completion/Linux/Command/_cryptsetup create mode 100644 Completion/Unix/Command/_twidge diff --git a/Completion/Linux/Command/_cryptsetup b/Completion/Linux/Comman= d/_cryptsetup new file mode 100644 index 0000000..3519336 --- /dev/null +++ b/Completion/Linux/Command/_cryptsetup @@ -0,0 +1,103 @@ +#compdef cryptsetup +## completion for cryptsetup 1.3.0, based on cryptsetup(1) + +function _cryptsetup_action { + typeset -a actions + actions=3D( + 'create:create a mapping' + 'remove:remove an existing mapping' + 'status:report mapping status' + 'resize:resize an active mapping' + 'luksFormat:Initialize a LUKS partition' + 'luksOpen:Open LUKS partition' + 'luksClose:remove an existing mapping' + 'luksSuspend:suspend active device' + 'luksResume:resume suspended device' + 'luksAddKey:add a new key' + 'luksRemoveKey:remove a key' + 'luksChangeKey:change a key' + 'luksKillSlot:wipe key from slot' + 'luksUUID:print/change device UUID' + 'isLuks:check if device is a LUKS partition' + 'luksDump:dump header information' + 'luksHeaderBackup:store binary backup of headers' + 'luksHeaderRestore:restore header backup' + ) + _describe action actions +} + +function _cryptsetup_device { + typeset expl + _wanted file expl device \ + _files +} + +function _cryptsetup_mapping { + typeset expl + _wanted file expl 'mapping name' \ + _path_files -W /dev/mapper +} + +function _cryptsetup_arguments { + + case ${words[1]} in + + create) + _arguments ':mapping:_cryptsetup_mapping' ':device:_cryptsetup_device' + ;; + + remove|status|resize|luksClose|luksSuspend|luksResume) + _arguments ': :_cryptsetup_mapping' + ;; + + luks(AddKey|RemoveKey|DelKey|UUID|Dump)|isLuks) + _arguments ': :_cryptsetup_device' + ;; + + luks(Format|AddKey|RemoveKey|ChangeKey)) + _arguments ': :_cryptsetup_device' ':key file:_files' + ;; + + luksKillSlot) + _arguments ': :_cryptsetup_device' ':key slot number' + ;; + + luksOpen) + _arguments ': :_cryptsetup_device' ': :_cryptsetup_mapping' + ;; + + esac +} + +function _cryptsetup { + _arguments \ + '(-v --verbose)'{-v,--verbose}'[enable verbose mode]' \ + '--debug[enable debug mode]' \ + '(-h --hash)'{-h,--hash}'[hash algorithm]:hash algorithm' \ + '(-c --cipher)'{-c,--cipher}'[set cipher]:cipher specification' \ + '(-y --verify-passphrase)'{-y,--verify-passphrase}'[query for password tw= ice]' \ + '(-d --key-file)'{-d,--key-file}'[set keyfile]:key file:_files' \ + '(-l --keyfile-size)'{-l,--keyfile-size}'[set keyfile size]:bytes' \ + '--new-keyfile-size[set new keyfile size (luksAddKey)]:bytes' \ + '--master-key-file[set master key]:key file:_files' \ + '--dump-master-key[dump luks master key]' \ + '(--use-urandom)--use-random[use /dev/random to generate volume key]' \ + '(--use-random)--use-urandom[use /dev/urandom to generate volume key]' \ + '(-S --key-slot)'{-S,--key-slot}'[select key slot]:key slot' \ + '(-s --key-size)'{-s,--key-size}'[set key size]:bits' \ + '(-b --size)'{-b,--size}'[force device size]:sectors' \ + '(-o --offset)'{-o,--offset}'[set start offset]:sectors' \ + '(-p --skip)'{-p,--skip}'[data to skip at beginning]:sectors' \ + '--readonly[set up read-only mapping]' \ + '(-i --iter-time)'{-i,--iter-time}'[set password processing duration]:mil= liseconds' \ + '(-q --batch-mode)'{-q,--batch-mode}'[do not ask for confirmation]' \ + '(-t --timeout)'{-t,--timeout}'[set password prompt timeout]:seconds' \ + '(-T --tries)'{-T,--tries}'[set maximum number of retries]:maximum retrie= s' \ + '--align-payload[set payload alignment]:sectors' \ + '--uuid[set device UUID]:uuid' \ + '--version[show version information]' \ + ':action:_cryptsetup_action' \ + '*::arguments:_cryptsetup_arguments' +} + +_cryptsetup "$@" diff --git a/Completion/Unix/Command/_twidge b/Completion/Unix/Command/_twi= dge new file mode 100644 index 0000000..d8b3b3d --- /dev/null +++ b/Completion/Unix/Command/_twidge @@ -0,0 +1,77 @@ +#compdef twidge +## completion for twidge 1.0.8, based on twidge(1) + +function _twidge_command { + typeset -a twidge_commands + typeset -i skip=3D1 + + twidge lscommands | while read cmd desc; do + if [[ $cmd =3D=3D ---* ]] { + skip=3D0 + continue + } + if (( skip )) { + continue + } + twidge_commands+=3D"${cmd}:${desc}" + done + + _describe command twidge_commands +} + +function _twidge_args { + typeset -a args_common args_more args_other args_update + + args_common=3D( + '(-a --all)'{-a,--all}'[receive all content]' + '(-e --exec)'{-e,--exec}'[execute command for each retrieved item]:comma= nd' + '(-l --long)'{-l,--long}'[long output format]' + '(-m --mailto)'{-m,--mailto}'[mail retrieved items]:mail address' + ) + + args_more=3D( + '(-s --saveid)'{-s,--saveid}'[save ID of most recent message]' + '(-u --unseen)'{-u,--unseen}'[only show unseen messages]' + ) + + args_other=3D( + '(-U --username)'{-U,--username}'[show updates of different user]:userna= me' + ) + + args_update=3D( + '(-i --inreplyto)'{-i,--inreplyto}'[update in reply to a message]:messag= e id' + '(-i --inreplyto 1)-r[read RFC2822 Mail]' + ':status' + ) + + case ${words[1]} in + lsarchive) + _arguments $args_common $args_more $args_other + ;; + ls(dm(|archive)|recent|replies|rt(|archive|replies))) + _arguments $args_common $args_more + ;; + lsfollow(ers|ing)) + _arguments $args_common :username + ;; + dmsend) + _arguments :recipient :status + ;; + (un|)follow) + _message username + ;; + update) + _arguments $args_update + ;; + esac +} + +function _twidge { + _arguments \ + '(-c --config)'{-c,--config}'[config file]:file:_files' \ + '(-d --debug)'{-d,--debug}'[enable debugging output]' \ + '(-): :_twidge_command' \ + '(-)*:: :_twidge_args' +} + +_twidge "$@" --=20 1.7.5.4 --T4sUOijqQbZv57TR-- --JYK4vJDZwFMowpUq Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAEBCAAGBQJOSsd6AAoJEBANW/tRZuAF2rYP/iBAwjSuyb3ZR94o6oJ9AHR5 VZ/MXVKFY6fl0FFWpNFBCsodEAHr2TfCwiwVHwqQC/JKIZQFUfQk2kGCkmFe4f5I llSlBFR/F13FprJmjPMv6HjYcMJWvZE4RG73JcMmNR7pjamU57uxjm9M/gDQ5jEW JKtRsuNZ5iQ7yFArj6fWppL+rncnbCgmLnlsADq3t6aCiiruoU1Y+DNqeL15/Z+O iMRREaE6wCGIDCnUxxsfBcXew8E63+kdjFQh0PhR6eaZXKhIzbFWx8aPoGMk/d+P eLgVTJ/aPzRXJSd5npfHydDxlh3lQbGiZspru955OVLZiE7KketTpIW6MU5I1G9p SScItBFi4l/kiL6fPe3DZzmjUHt+4OaazjNLut3G8LuI/5eqswUkKJyNbngN/cQZ IyIsG5IYQ6KI5wchI3ZeUzPpV6CGKGiMgXKVbKpIzX7gPlQ03ksbLECquCTp+r5Y JupD0GhY94DJDZAP/eXScBK0fjgZzxX68Tx3uVmk7tGrQ6ZWx9EJiDz5TdEmlfrq CvnOOF0sePIkHF/eu3ykREYq4Qh9wRJMYYVDo1o8pPSSxPXv9H0j7CJIxrOa3INW /MHHWzF/O7k2lpXOaQUC/wt+h/uk5aMVpo/W8/TnLVQFY0maGFAYUQe1NAenCXDq NtwJ1kcAlNnUXlvWHxBr =6Wjm -----END PGP SIGNATURE----- --JYK4vJDZwFMowpUq--