From 8fe6ea388973defc6bb77a32fb86cef5b8231aea Mon Sep 17 00:00:00 2001
From: Martin Putniorz <mputniorz@gmail.com>
Date: Sun, 2 Dec 2012 20:55:19 +0100
Subject: [PATCH] Functions for managing pacman-key

---
 plugins/archlinux/archlinux.plugin.zsh | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh
index 294dc5354..ae92a0b4c 100644
--- a/plugins/archlinux/archlinux.plugin.zsh
+++ b/plugins/archlinux/archlinux.plugin.zsh
@@ -11,7 +11,7 @@ if [[ -x `which yaourt` ]]; then
   alias yaupg='yaourt -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.
   alias yasu='yaourt --sucre'      # Same as yaupg, but without confirmation
   alias yain='yaourt -S'           # Install specific package(s) from the repositories
-  alias yains='yaourt -U'          # Install specific package not from the repositories but from a file 
+  alias yains='yaourt -U'          # Install specific package not from the repositories but from a file
   alias yare='yaourt -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies
   alias yarem='yaourt -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies
   alias yarep='yaourt -Si'         # Display information about a given package in the repositories
@@ -35,7 +35,7 @@ fi
 # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
 alias pacupg='sudo pacman -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.
 alias pacin='sudo pacman -S'           # Install specific package(s) from the repositories
-alias pacins='sudo pacman -U'          # Install specific package not from the repositories but from a file 
+alias pacins='sudo pacman -U'          # Install specific package not from the repositories but from a file
 alias pacre='sudo pacman -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies
 alias pacrem='sudo pacman -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies
 alias pacrep='pacman -Si'              # Display information about a given package in the repositories
@@ -75,3 +75,19 @@ pacdisowned() {
 
   comm -23 "$fs" "$db"
 }
+
+pacmanallkeys() {
+  # Get all keys for developers and trusted users
+  curl https://www.archlinux.org/{developers,trustedusers}/ |
+  awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
+  xargs sudo pacman-key --recv-keys
+}
+
+pacmansignkeys() {
+  for key in $*; do
+    sudo pacman-key --recv-keys $key
+    sudo pacman-key --lsign-key $key
+    printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
+      --no-permission-warning --command-fd 0 --edit-key $key
+  done
+}