1import argparse
2import sys
3
4from constants import (
5    IMPL_DEP_FILE_STR,
6    OUTPUT_FILE_STR,
7)
8from parser import Parser
9
10def main():
11    arg_parser = argparse.ArgumentParser(
12        description="Control module for tracking implicit dependencies"
13    )
14    arg_parser.add_argument(
15        "-f", "--file", default=IMPL_DEP_FILE_STR,
16        help="path to kernel.implicit_dependencies",
17    )
18    arg_parser.add_argument(
19        "-o", "--output", default=OUTPUT_FILE_STR,
20        help="where to output info",
21    )
22    arg_parser.add_argument(
23        "-v", "--verbose", action="store_true",
24        help="if verbose, we list what fields are responsible for the dependency"
25    )
26    arg_parser.add_argument(
27        "-p", "--pretty", action="store_true",
28        help="print implicit dependencies in pretty format"
29    )
30    args = arg_parser.parse_args()
31
32    p = Parser(args.file, output_file_str=args.output, verbose=args.verbose, pretty=args.pretty)
33    p.parse()
34    p.write()
35    p.close()
36
37
38if __name__ == "__main__":
39    sys.exit(main())
40