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