FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 04-15-2012, 05:16 PM
Daniel Wallace
 
Default patch to add zsh completion to pacman-key

this patch adds a _pacman_key function to the _pacman zsh site function
so that zsh users can have completion for pacman-key <keyids> and other
files which may be used with pacman-key

Signed-off-by: Daniel Wallace <daniel.wallace@gatech.edu>
---
contrib/zsh_completion.in | 58 +++++++++++++++++++++++++++++++++++++++++----
1 file changed, 54 insertions(+), 4 deletions(-)

diff --git a/contrib/zsh_completion.in b/contrib/zsh_completion.in
index b30e960..73ce42f 100644
--- a/contrib/zsh_completion.in
+++ b/contrib/zsh_completion.in
@@ -1,4 +1,4 @@
-#compdef pacman pacman.static=pacman
+#compdef pacman pacman.static=pacman pacman-key

# copy this file to /usr/share/zsh/site-functions/_pacman

@@ -286,7 +286,7 @@ _pacman_get_command() {
}

# main dispatcher
-_pacman() {
+_pacman_zsh_comp() {
case $words[2] in
-Q*g*) # ipkg groups
_arguments -s :
@@ -332,5 +332,55 @@ _pacman() {
esac
}

-# run the main dispatcher
-_pacman "$@"
+_pacman_key() {
+ _arguments
+ '(- '{-h,--help}"[show help]"
+ '(-a --add)*'{-a,--add}"[Add the specified keys (empty for stdin)]: :_files"
+ '(-d --delete)*'{-d,--delete}"[Remove the Specified keyids]: :_keys"
+ '(-e --export)*'{-e,--export}"[Export the specified or all keyids]: :_keys"
+ '(-f --finger)*'{-f,--finger}"[List fingreprint for specidied or all keyids]: :_keys"
+ '(-l --list-keys)*'{-l,--list-keys}"[List the specified or all keys]: :_keys"
+ '(-r --recv-keys)*'{-r,--recv-keys}"[Fetch the specified keyids]: :_keys"
+ '(-u --updatedb)*'{-u,--updatedb}"[Update the trustdb of pacman]"
+ '(-v --verify)*'{-v,--verify}"[Verify the file specified by the signature]: :_files -g '*.sig'"
+ '(-V --version)*'{-V,--version}"[Show program version]"
+ '(--config)*'{*,--config}"[Use an alternate config file]: :_files"
+ '(--edit-key)*'{*,--edit-key}"[Present a menu for key management task on keyids]: :_keys"
+ '(--gpgdir)*'{*,--gpgdir}"[Set an alternate directory for GnuPG (instead of '/etc/pacman.d/gnupg')]: :_files -/"
+ '(--import)*'{*,--import}"[Imports pubring.gpg from dir(s)]: :_files -g '*.gpg'"
+ '(--import-trustdb)*'{*,--import-tb}"[Imports ownertrust values from trustdb.gpg in dir(s)]: :_files -g '*.gpg'"
+ '(--init)*'{*,--init}"[Ensure the keyring is properly initialized]"
+ '(--keyserver)*'{*,--keyserver}"[Specify a keyserver to use if necessary]"
+ '(--list-sigs)*'{*,--list-sigs}"[List keys and their signatures]: :_keys"
+ '(--lsign-key)*'{*,--lsign-key}"[Locally sign the specified keyid]: :_keys"
+ '(--populate)*'{*,--populate}"[Reload the default keys from the (given) keyrings in '/usr/share/pacman/keyrings']: :_path_files -W /usr/share/pacman/keyrings"
+ '(--refresh-keys)*'{*,--refresh-keys}"[Update specified or all keys from a keyserver]: :_keys"
+}
+
+_keys() {
+ local keys
+ #uses the first < to the end and remove first > to the end to get all the emails
+ #the using the first / to end then remove first ' ' to the end this gets all the keyids (pub and sub)
+ #the ##uid* removes all the .jpeg pictures with ids, and ##pubbring.gpg removes the beginning line that lists
+ #where stuff is stored, ##--* removes the line of dashes at the beginning, but doesn't remove email addresses
+ #with dashes in them
+ keys=( ${${${${${${${${${(f)"$(pacman-key --list-keys 2>/dev/null)"}}##*<}%%>}##*/}%% *}##uid*}##pubring.gpg}##--*} )
+ _describe -t modules 'keys in keyring' keys && return 0
+}
+
+_pacman_comp() {
+ case "$service" in
+ pacman-key)
+ _pacman_key "$@";;
+ pacman)
+ _pacman_zsh_comp "$@";;
+ *)
+ _message "Error";;
+ esac
+}
+
+_pacman_comp "$@"
+
+
+
+# vim: ft=zsh sw=2 ts=2 et
--
1.7.10
 

Thread Tools




All times are GMT. The time now is 05:33 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org