]> gitweb.pimeys.fr Git - scripts-20-100.git/blob - import_caff_sigs.sh
[update_myconfig] Refresh de la liste
[scripts-20-100.git] / import_caff_sigs.sh
1 #!/bin/bash
2
3 # Pour récupérer toutes les signatures des mails dans le dossier
4 # idoine stocké sur zamok
5
6 # NB : si tu n'as pas "cadre", bah t'es puni, remplace par echo
7
8 # -------
9
10 # On lance l'agent gpg avec un pinentry commandline
11 cadre "Starting gpg-agent"
12 eval $(gpg-agent --daemon --pinentry-program /usr/bin/pinentry-curses)
13 echo $GPG_AGENT_INFO
14 agentpid=$(echo $GPG_AGENT_INFO | cut -d: -f 2)
15
16 # On récupère les mails de signatures
17 where=`mktemp -d`
18 cadre "Storing mails copied in ${where}"
19
20 # On récupère la liste des fichiers qui n'ont pas de S (\Seen) dans leurs flags
21 # (on vire le \x0 qui est à la fin, et on prie pour qu'il n'y ait jamais d'espaces dans les noms de mails)
22 MAILS=$(ssh zamok find "~/Mail/.Signatures/cur/" -type f -regex "'[^:]+:2,[^S]*'" -print0 | sed "s/\x0/ /g;s/ $//")
23 # On parsème de virgules et de backslash là où il faut et on les rappatrie
24 echo $MAILS | sed 's/,/\\\\,/g;s/ /,/g' | xargs -I % scp zamok:{%} ${where}
25
26 # On traite les mails un par un
27 cadre "Decrypting and importing signatures"
28 for mail in ${where}/*;
29 do
30 gpg2 --no-auto-check-trustdb --decrypt ${mail} | gpg2 --no-auto-check-trustdb --import;
31 done
32
33 # On marque (peut-être) les mails distants comme lus
34 cadre "Cleaning up"
35 echo -n "Mark distant e-mails as read ? [Y/n]"
36 read -r ans
37 # On ajoute le flag S (\Seen) aux mails concernés là où il faut dans l'ordre alphabétique
38 # en ne touchant pas au reste de leur nom
39 # Attention au "''" et aux \$ parce que ssh needs moar escapingz
40 [[ "${ans}" = "n" ]] || [[ "${ans}" = "N" ]] || ssh zamok rename -v "'s/^([^:]+):2,([A-R]*)([^S]*)$/\$1:2,\$2S\$3/'" $MAILS
41
42 # On fait le ménage
43 echo -n "Remove local tempfolder ? [Y/n]"
44 read -r ans
45 [[ "${ans}" = "n" ]] || [[ "${ans}" = "N" ]] || rm -rfv ${where}
46
47 cadre "Sending freshly-signed key to servers"
48 echo -n "Sure ? [Y/n]"
49 read -r ans
50 [[ "${ans}" = "n" ]] || [[ "${ans}" = "N" ]] || gpg --send-keys D5759143B14B45B6