]> git.ipfire.org Git - people/ms/nitsi.git/blobdiff - nitsi.in
Improve return codes
[people/ms/nitsi.git] / nitsi.in
index 460487dd26d006d82ba1316f0546f2b6ce152a43..51d5d86f78b0ad723742d3288578af0a8df6de0c 100755 (executable)
--- a/nitsi.in
+++ b/nitsi.in
@@ -1,22 +1,22 @@
 #!/usr/bin/python3
 
 from nitsi.test import test
+from nitsi.logger import init_logging
 import logging
 
+from nitsi.recipe import RecipeExeption
+
+from nitsi.test import TestException
+
 logger = logging.getLogger("nitsi")
 logger.setLevel(logging.DEBUG)
-# create file handler which logs even debug messages
-fh = logging.FileHandler('nitsi.log')
-fh.setLevel(logging.DEBUG)
 # create console handler with a higher log level
 ch = logging.StreamHandler()
 ch.setLevel(logging.DEBUG)
 
 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
-fh.setFormatter(formatter)
 ch.setFormatter(formatter)
 # add the handlers to the logger
-logger.addHandler(fh)
 logger.addHandler(ch)
 
 if __name__ == "__main__":
@@ -34,14 +34,31 @@ if __name__ == "__main__":
     if args.version:
         logger.info("nitsi version: {}".format("@PACKAGE_VERSION@"))
     else:
-        currenttest = test(args.dir)
-        currenttest.read_settings()
-        currenttest.virtual_environ_setup()
-        currenttest.load_recipe()
+        log_dir = init_logging(args.dir)
+        # We now going to log everything to log_dir/genaral.log
+        fh = logging.FileHandler("{}/general.log".format(log_dir))
+        fh.setLevel(logging.DEBUG)
+        logger.addHandler(fh)
+        logger.debug("We now logging everything to {}/general.log".format(log_dir))
+        try:
+            currenttest = test(args.dir, log_dir)
+            currenttest.read_settings()
+            currenttest.virtual_environ_setup()
+            currenttest.load_recipe()
+        except RecipeExeption as e:
+            logger.exception(e)
+            exit(2)
+
         try:
             currenttest.virtual_environ_start()
             currenttest.run_recipe()
+        except TestException as e:
+            logger.exception(e)
+            exit(1)
         except BaseException as e:
-            print(e)
+            logger.exception(e)
+            exit(3)
         finally:
-            currenttest.virtual_environ_stop()
\ No newline at end of file
+            currenttest.virtual_environ_stop()
+
+        exit(0)
\ No newline at end of file