From 23ff2d58ee3644f9aa52c2d97f0e5b63342bda99 Mon Sep 17 00:00:00 2001
From: Daniel STAN <daniel.stan@crans.org>
Date: Wed, 31 Jul 2013 23:47:28 +0200
Subject: [PATCH] =?UTF-8?q?r=C3=A9pare=20les=20options=20--(no)=3Fclipboar?=
 =?UTF-8?q?d?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Vincent me les as cassé lors du commit ab2f04c60f39ed. 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 :(
---
 client.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/client.py b/client.py
index 0a8f920..17df3d5 100755
--- a/client.py
+++ b/client.py
@@ -813,7 +813,7 @@ if __name__ == "__main__":
     parser.add_argument('-c', '--clipboard', action='store_true', default=None,
         help="Stocker le mot de passe dans le presse papier")
     parser.add_argument('--no-clip', '--noclip', '--noclipboard', action='store_false', default=None,
-        dest='noclipboard',
+        dest='clipboard',
         help="Ne PAS stocker le mot de passe dans le presse papier")
     parser.add_argument('-f', '--force', action='store_true', default=False,
         help="Ne pas demander confirmation")
@@ -865,9 +865,12 @@ if __name__ == "__main__":
     ## On calcule les options qui dépendent des autres.
     ## C'est un peu un hack, peut-être que la méthode propre serait de surcharger argparse.ArgumentParser
     ## et argparse.Namespace, mais j'ai pas réussi à comprendre commenr m'en sortir.
-    # On utilise le clipboard si on n'a pas demandé explicitement à ne pas le faire,
-    # qu'on n'est pas en session distante et qu'on a xclip
-    options.clipboard = not options.noclipboard and bool(os.getenv('DISPLAY')) and os.path.exists('/usr/bin/xclip')
+    # ** Presse papier **
+    # Si l'utilisateur n'a rien dit (ni option --clipboard ni --noclipboard),
+    # on active le clipboard par défaut, à la condition
+    # que xclip existe et qu'il a un serveur graphique auquel parler.
+    if options.clipboard is None:
+        options.clipboard = bool(os.getenv('DISPLAY')) and os.path.exists('/usr/bin/xclip')
     # On récupère les données du serveur à partir du nom fourni
     options.serverdata = config.servers[options.server]
     # Attention à l'ordre pour interactive
-- 
GitLab