]> git.ipfire.org Git - nitsi.git/blame_incremental - nitsi.in
Improve return codes
[nitsi.git] / nitsi.in
... / ...
CommitLineData
1#!/usr/bin/python3
2
3from nitsi.test import test
4from nitsi.logger import init_logging
5import logging
6
7from nitsi.recipe import RecipeExeption
8
9from nitsi.test import TestException
10
11logger = logging.getLogger("nitsi")
12logger.setLevel(logging.DEBUG)
13# create console handler with a higher log level
14ch = logging.StreamHandler()
15ch.setLevel(logging.DEBUG)
16
17formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
18ch.setFormatter(formatter)
19# add the handlers to the logger
20logger.addHandler(ch)
21
22if __name__ == "__main__":
23 import argparse
24
25 parser = argparse.ArgumentParser()
26
27 parser.add_argument("-d", "--directory", dest="dir")
28
29 parser.add_argument("-v" "--version", help="Display version and exit",
30 action="store_true", dest="version")
31
32 args = parser.parse_args()
33
34 if args.version:
35 logger.info("nitsi version: {}".format("@PACKAGE_VERSION@"))
36 else:
37 log_dir = init_logging(args.dir)
38 # We now going to log everything to log_dir/genaral.log
39 fh = logging.FileHandler("{}/general.log".format(log_dir))
40 fh.setLevel(logging.DEBUG)
41 logger.addHandler(fh)
42 logger.debug("We now logging everything to {}/general.log".format(log_dir))
43 try:
44 currenttest = test(args.dir, log_dir)
45 currenttest.read_settings()
46 currenttest.virtual_environ_setup()
47 currenttest.load_recipe()
48 except RecipeExeption as e:
49 logger.exception(e)
50 exit(2)
51
52 try:
53 currenttest.virtual_environ_start()
54 currenttest.run_recipe()
55 except TestException as e:
56 logger.exception(e)
57 exit(1)
58 except BaseException as e:
59 logger.exception(e)
60 exit(3)
61 finally:
62 currenttest.virtual_environ_stop()
63
64 exit(0)