1 | # This program is free software: you can redistribute it and/or modify it |
||
2 | # under the terms of the GNU Affero General Public License as published by the |
||
3 | # Free Software Foundation, either version 3 of the License, or (at your |
||
4 | # option) any later version. |
||
5 | # |
||
6 | # This program is distributed in the hope that it will be useful, but WITHOUT |
||
7 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
||
8 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License |
||
9 | # for more details. |
||
10 | # |
||
11 | # You should have received a copy of the GNU Affero General Public License |
||
12 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
13 | |||
14 | import json |
||
15 | |||
16 | from coalib.coala_main import run_coala |
||
17 | from coalib.output.JSONEncoder import create_json_encoder |
||
18 | from coalib.output.printers.ListLogPrinter import ListLogPrinter |
||
19 | from coalib.parsing.DefaultArgParser import default_arg_parser |
||
20 | |||
21 | |||
22 | def main(): |
||
23 | # Note: We parse the args here once to find the log printer to use. |
||
24 | # Also, commands like -h (help) and -v (version) are executed here. |
||
25 | # The args are again parsed later to find the settings and configs |
||
26 | # to use during analysis. |
||
27 | arg_parser = default_arg_parser() |
||
28 | args = arg_parser.parse_args() |
||
29 | |||
30 | log_printer = None if args.text_logs else ListLogPrinter() |
||
31 | results, exitcode, _ = run_coala(log_printer=log_printer, autoapply=False) |
||
32 | |||
33 | retval = {"results": results} |
||
34 | if not args.text_logs: |
||
35 | retval["logs"] = log_printer.logs |
||
36 | JSONEncoder = create_json_encoder(use_relpath=args.relpath) |
||
37 | if args.output: |
||
38 | filename = str(args.output) |
||
39 | with open(filename, 'w+') as fp: |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
![]() Comprehensibility
Best Practice
introduced
by
|
|||
40 | json.dump(retval, fp, |
||
41 | cls=JSONEncoder, |
||
42 | sort_keys=True, |
||
43 | indent=2, |
||
44 | separators=(',', ': ')) |
||
45 | else: |
||
46 | print(json.dumps(retval, |
||
47 | cls=JSONEncoder, |
||
48 | sort_keys=True, |
||
49 | indent=2, |
||
50 | separators=(',', ': '))) |
||
51 | |||
52 | return exitcode |
||
53 |