]> git.ipfire.org Git - people/ms/nitsi.git/blobdiff - nitsi.in
Add main() function
[people/ms/nitsi.git] / nitsi.in
index f8f79455785cb84958c425c7b554e4781639f19f..f45dbe637fcf129aa03298e293cecc0f73851065 100755 (executable)
--- a/nitsi.in
+++ b/nitsi.in
@@ -3,6 +3,7 @@
 from nitsi.test import test
 from nitsi.logger import init_logging
 import logging
+import argparse
 
 from nitsi.recipe import RecipeExeption
 
@@ -19,9 +20,7 @@ ch.setFormatter(formatter)
 # add the handlers to the logger
 logger.addHandler(ch)
 
-if __name__ == "__main__":
-    import argparse
-
+def main():
     parser = argparse.ArgumentParser()
 
     parser.add_argument("-d", "--directory", dest="dir")
@@ -31,34 +30,42 @@ if __name__ == "__main__":
 
     args = parser.parse_args()
 
+    # We just log the version and exit
     if args.version:
         logger.info("nitsi version: {}".format("@PACKAGE_VERSION@"))
-    else:
-        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)
+        return 0
+
+    # For all other stuff we need logging to a file
+    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.virtual_environ_start()
-            currenttest.run_recipe()
-        except TestException as e:
-            logger.exception(e)
-            exit(1)
-        except BaseException as e:
-            logger.exception(e)
-            exit(3)
-        finally:
-            currenttest.virtual_environ_stop()
+    # here we run a test
+    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)
 
-        exit(0)
\ No newline at end of file
+    try:
+        currenttest.virtual_environ_start()
+        currenttest.run_recipe()
+    except TestException as e:
+        logger.exception(e)
+        return 1
+    except BaseException as e:
+        logger.exception(e)
+        return 3
+    finally:
+        currenttest.virtual_environ_stop()
+
+    return 0
+
+if __name__ == "__main__":
+    main()
\ No newline at end of file