X-Git-Url: http://git.ipfire.org/?p=nitsi.git;a=blobdiff_plain;f=nitsi.in;h=fc1ce8e0af9f2b0ee5fa44f37fd2989752cacebc;hp=460487dd26d006d82ba1316f0546f2b6ce152a43;hb=dcf87b0a490abebfa59be742f345acdd61a4d5c2;hpb=4cba2549ba588ffc749ce1934e9edf764b6862e5 diff --git a/nitsi.in b/nitsi.in index 460487d..fc1ce8e 100755 --- a/nitsi.in +++ b/nitsi.in @@ -1,47 +1,71 @@ #!/usr/bin/python3 -from nitsi.test import test +import argparse import logging +from nitsi.logger import init_logging +from nitsi.recipe import RecipeExeption +from nitsi.test import TestException, test + 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__": - import argparse - +def main(): parser = argparse.ArgumentParser() parser.add_argument("-d", "--directory", dest="dir") - parser.add_argument("-v" "--version", help="Display version and exit", + parser.add_argument("-v", "--version", help="Display version and exit", action="store_true", dest="version") args = parser.parse_args() + # We just log the version and exit if args.version: logger.info("nitsi version: {}".format("@PACKAGE_VERSION@")) - else: - currenttest = test(args.dir) + 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)) + + # here we run a test + try: + currenttest = test(args.dir, log_dir) currenttest.read_settings() currenttest.virtual_environ_setup() currenttest.load_recipe() - try: - currenttest.virtual_environ_start() - currenttest.run_recipe() - except BaseException as e: - print(e) - finally: - currenttest.virtual_environ_stop() \ No newline at end of file + except RecipeExeption as e: + logger.exception(e) + return 2 + + 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__": + return_value = main() + logger.debug("Return value of main is: {}".format(return_value)) + exit(return_value)