Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#compdef cranspasswords
_cranspasswords(){
local cmd
if (( CURRENT > 2 )); then
END=$(( CURRENT - 1 ))
cmd=$words[$END]
case $cmd in
--server)
liste_serveurs=($(cranspasswords --list-servers 2> /dev/null | tail -n +2 | awk '{print $2}' | tr '\n' ' '))
for i in $liste_serveurs; do
_wanted server expl "server names" compadd $i;
done;
;;
--view | --edit)
pos=$words[(i)--server]
posa=$(( pos + 1))
if (( posa < $#words )); then
fname="cpw_$words[$posa]_files"
server=$words[$posa]
else
fname="cpw_default_files"
server="default"
fi;
result=$(find /tmp -mmin -1 -name $fname 2> /dev/null | wc -l)
if (( result < 1 )); then
liste_fichiers=($(cranspasswords --server $server --list 2>/dev/null | tail -n +2 | head -n -1 | awk '{print $2}' | tr '\n' ' '))
echo $liste_fichiers > /tmp/$fname
for i in $liste_fichiers; do
_wanted files expl "file names" compadd $i;
done;
else
liste_fichiers=($(cat /tmp/$fname))
for i in $liste_fichiers; do
_wanted files expl "file names" compadd $i;
done;
fi;
;;
--roles)
pos=$words[(i)--server]
posa=$(( pos + 1))
if (( posa < $#words )); then
fname="cpw_$words[$posa]_roles"
server=$words[$posa]
else
fname="cpw_default_roles"
server="default"
fi;
result=$(find /tmp -mmin -1 -name $fname 2> /dev/null | wc -l)
if (( result < 1 )); then
liste_fichiers=($(cranspasswords --server $server --list-roles 2>/dev/null | tail -n +2 | awk '{print $2}' | tr '\n' ' '))
echo $liste_fichiers > /tmp/$fname
for i in $liste_fichiers; do
_wanted roles expl "role names" compadd $i;
done;
else
liste_fichiers=($(cat /tmp/$fname))
for i in $liste_fichiers; do
_wanted roles expl "role names" compadd $i;
done;
fi;
;;
*)
_cranspasswords_args $@
;;
esac
else
_cranspasswords_args $@
fi
}
_cranspasswords_args(){
_arguments -s : \
"(-h --help)"{-h,--help}"[Obtenir de l'aide]" \
"(-v --verbose)"{-v,--verbose}"[Mode verbeux]"\
"(-f --force)"{-f,--force}"[Force]" \
"--server[Le serveur auquel se connecter]:server:" \
- list1 \
"--list-roles[Lister les rôles des gens]" \
- list2 \
"--list-servers[Lister les serveurs]" \
- list3 \
"(-l --list)"{-l,--list}"[Lister les fichiers présents sur le serveur]" \
- recrypt \
"--recrypt-role[Met à jour les rôles (rechiffre les fichiers)]" \
- edit \
"--edit[Créer ou modifier un fichier]:fichier:" \
"--roles[Liste les rôles]:roles:" \
- update \
"--check-keys[Vérifier les clefs]" \
"--update-keys[Mettre à jour les clefs]" \
- remove \
"--remove[Pour supprimer un fichier]" \
- view \
"--view[Pour lire un fichier]:fichier:" \
"(-c --clipboard)"{-c,--clipboard}"[Utilisation du presse-papier]" \
"--noclipboard[Ne pas utiliser le presse-papier]"
}
_cranspasswords "$@"