From 0d847ba2a3e63f00661ffcb31b8b85a7a180e386 Mon Sep 17 00:00:00 2001
From: Alexandre Iooss <erdnaxe@crans.org>
Date: Sun, 12 Apr 2020 13:46:42 +0200
Subject: [PATCH] Use logger for all errors

---
 client.py | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/client.py b/client.py
index efe3015..5578328 100755
--- a/client.py
+++ b/client.py
@@ -48,7 +48,7 @@ except ImportError:
     if envspecified is None:
         if ducktape_display_error:
             log.error("Va lire le fichier README.")
-            sys.exit(1)
+            exit(1)
     else:
         # On a spécifié à la main le dossier de conf
         try:
@@ -56,8 +56,8 @@ except ImportError:
             import clientconfig as config
         except ImportError:
             if ducktape_display_error:
-                sys.stderr.write(u"%s est spécifiée, mais aucune config pour le client ne peut être importée." % (envvar))
-                sys.exit(1)
+                log.error("%s is passed, but no config could be imported" % envvar)
+                exit(1)
 
 #: Pattern utilisé pour détecter la ligne contenant le mot de passe dans les fichiers
 pass_regexp = re.compile('[\t ]*pass(?:word)?[\t ]*:[\t ]*(.*)\r?\n?$',
@@ -899,7 +899,7 @@ def recrypt_files(options, strict=False):
     filenames = ", ".join(askfiles)
     message = u"Vous vous apprêtez à rechiffrer les fichiers suivants :\n%s" % filenames
     if not confirm(options, message + u"\nConfirmer"):
-        sys.exit(2)
+        exit(2)
     # On rechiffre
     to_put = [{'filename' : f['filename'],
                'roles' : f['roles'],
@@ -942,24 +942,21 @@ def parse_roles(options, cast=False):
     ret = set()
     for role in strroles.split(','):
         if role not in allroles.keys():
-            if not options.quiet:
-                print((u"Le rôle %s n'existe pas !" % role).encode("utf-8"))
-            sys.exit(1)
+            log.warn("role %s do not exists" % role)
+            exit(1)
         if role.endswith('-w'):
-            if not options.quiet:
-                print((u"Le rôle %s ne devrait pas être utilisé ! (utilisez %s)")
-                       % (role, role[:-2])).encode("utf-8")
-            sys.exit(1)
+            log.warn("role %s should not be used, rather use %s" % (role, role[:-2]))
+            exit(1)
         ret.add(role)
     return list(ret)
 
 def insult_on_nofilename(options, parser):
     """Insulte (si non quiet) et quitte si aucun nom de fichier n'a été fourni en commandline."""
     if options.fname == None:
+        log.warn("You need to provide a filename with this command")
         if not options.quiet:
-            print(u"Vous devez fournir un nom de fichier avec cette commande".encode("utf-8"))
             parser.print_help()
-        sys.exit(1)
+        exit(1)
 
 if __name__ == "__main__":
     # Gestion des arguments
@@ -1055,7 +1052,7 @@ if __name__ == "__main__":
     logging.addLevelName(logging.DEBUG, "\033[1;37mDEBUG\033[1;0m")
     logging.basicConfig(
         level=options.verbose,
-        format='\033[1;90m%(asctime)s\033[1;0m %(name)s %(levelname)s %(message)s'
+        format='\033[90m%(asctime)s\033[1;0m %(name)s %(levelname)s %(message)s'
     )
 
     ## On calcule les options qui dépendent des autres.
-- 
GitLab