]> git.ipfire.org Git - nitsi.git/blame_incremental - nitsi.in
.gitignore: Don't list generated nitsi script as untracked file
[nitsi.git] / nitsi.in
... / ...
CommitLineData
1#!/usr/bin/python3
2
3import argparse
4import logging
5
6from nitsi.logger import init_logging
7from nitsi.recipe import RecipeExeption
8from nitsi.test import TestException, test
9
10logger = logging.getLogger("nitsi")
11logger.setLevel(logging.DEBUG)
12# create console handler with a higher log level
13ch = logging.StreamHandler()
14ch.setLevel(logging.DEBUG)
15
16formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
17ch.setFormatter(formatter)
18# add the handlers to the logger
19logger.addHandler(ch)
20
21def main():
22 parser = argparse.ArgumentParser()
23
24 parser.add_argument("-d", "--directory", dest="dir")
25
26 parser.add_argument("-v", "--version", help="Display version and exit",
27 action="store_true", dest="version")
28
29 args = parser.parse_args()
30
31 # We just log the version and exit
32 if args.version:
33 logger.info("nitsi version: {}".format("@PACKAGE_VERSION@"))
34 return 0
35
36 # For all other stuff we need logging to a file
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
44 # here we run a test
45 try:
46 currenttest = test(args.dir, log_dir)
47 currenttest.read_settings()
48 currenttest.virtual_environ_setup()
49 currenttest.load_recipe()
50 except RecipeExeption as e:
51 logger.exception(e)
52 return 2
53
54 try:
55 currenttest.virtual_environ_start()
56 currenttest.run_recipe()
57 except TestException as e:
58 logger.exception(e)
59 return 1
60 except BaseException as e:
61 logger.exception(e)
62 return 3
63 finally:
64 currenttest.virtual_environ_stop()
65
66 return 0
67
68if __name__ == "__main__":
69 return_value = main()
70 logger.debug("Return value of main is: {}".format(return_value))
71 exit(return_value)