Lorsqu'on éditait un fichier, on écrasait nécessairement les roles
en place, car l'option.roles était parsée avec la supposition que
None = mes roles en écritures.
On corrige parse_roles en considérant (par défaut) que la valeur None
reste à None, ce qui permet de continuer à vérifier que les arguments
fournis sont valides.
Un peu de refactoring dans le code de edit_file a eu lieu au passage
(principalement des simplifications du code).
C'était plus pratique que de faire un merge de la branche devel-keep-alive.
La feature n'est pas activée automatiquement pour les gens qui ont déjà
un fichier de config, mais elle est présente pour ceux qui en crée un.
Vincent me les as cassé lors du commit ab2f04c60f. En particulier
il a remplacé la variable de destination de --noclipboard en "clipboard"
sans changer la valeur à enregistrer (qui était False). Bref, quand on
tapait "--noclipboard" ça enregistrait False dans la variable "noclipboard" …
L'option --clipboard était devenue du code mort …
Voilà le comportement souhaité :
À moins que l'utilisateur ne précise une option, on essaie de deviner si un
clipboard est dispo et on l'utilise.
Si l'utilisateur utilise une des options, il a raison et on l'écoute sans
se poser de questions. Typiquement, si "--clipboard" est précisé, on n'a
pas à vérifier nous-même que /usr/bin/xclip existe. Par ailleurs, cela
permet de faire marcher le clipboard sur des setups "exotiques", par
exemple s'il n'est pas dans /usr/bin/. Remarquer que l'appel à xclip
se fait en relatif contrairement au test, ce qui permet d'override xclip ou d'en
mettre un autre perso dans son ~/bin/.
Rajout d'un commentaire dans le code, pour éviter qu'on ne ré-efface cette
feature :(
300f13b2 introduit une clé 'whoami' dans un dico, et l'efface
de temps en temps à coup de pop. Sauf qu'il s'agit toujours du même
dictionnaire (mémoisation oblige), on règle le problème en
copyant la structure à chaque appel.
Le paramètre --drop-invalid fait son apparition pout droper automatiquement
les bad guy-e-s qui ont laissé leur clés expirer.
NB : on n'a toujours pas réglé le problème des *sub*keys expirées.
On peut récupérer/envoyer plusieurs fichiers à la fois.
A priori, le serveur n'est plus rétro-compatible avec les clients non à jour.
Conflicts:
client.py
server.py
Le côté serveur viendra dans un prochain commit.
C'était pour make rename et make rerename qu'il était
nettement plus pratique d'avoir des guillemets simples.