Passed
Pull Request — master (#149)
by Jan
03:34
created

oval_graph.command_line.arf_to_report()   A

Complexity

Conditions 3

Size

Total Lines 9
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 9.0292

Importance

Changes 0
Metric Value
cc 3
eloc 8
nop 1
dl 0
loc 9
ccs 1
cts 8
cp 0.125
crap 9.0292
rs 10
c 0
b 0
f 0
1 1
import sys
2 1
import traceback
3
4 1
from .arf_to_html import ArfToHtml
5 1
from .arf_to_json import ArfToJson
6 1
from .json_to_html import JsonToHtml
7 1
from .arf_to_html_report import ArfToHtmlReport
8
9 1
CRED = '\033[91m'
10 1
CEND = '\033[0m'
11
12
13 1
def print_where_is_saved_result(results_src):
14 1
    if results_src:
15 1
        print("Results are saved:", file=sys.stderr)
16 1
        for src in results_src:
17 1
            print(src, file=sys.stderr)
18
19
20 1
def print_detail_traceback_if_verbose(args):
21 1
    if args is None:
22
        args = sys.argv[1:]
23
24 1
    if any(arg in args for arg in ("-v", "--verbose")):
25 1
        traceback.print_exc()
26
27
28 1
def arf_to_report(args=None):
29
    try:
30
        if args is not None:
31
            main(ArfToHtmlReport(args))
32
        else:
33
            main(ArfToHtmlReport(sys.argv[1:]))
34
    except Exception as error:
35
        print_detail_traceback_if_verbose(args)
36
        print((CRED + 'Error: {}' + CEND).format(error))
37
38
39 1
def arf_to_graph(args=None):
40 1
    try:
41 1
        if args is not None:
42 1
            main(ArfToHtml(args))
43
        else:
44
            main(ArfToHtml(sys.argv[1:]))
45 1
    except Exception as error:
46 1
        print_detail_traceback_if_verbose(args)
47 1
        print((CRED + 'Error: {}' + CEND).format(error))
48
49
50 1
def arf_to_json(args=None):
51 1
    try:
52 1
        if args is not None:
53 1
            main(ArfToJson(args))
54
        else:
55
            main(ArfToJson(sys.argv[1:]))
56 1
    except Exception as error:
57 1
        print_detail_traceback_if_verbose(args)
58 1
        print((CRED + 'Error: {}' + CEND).format(error))
59
60
61 1
def json_to_graph(args=None):
62 1
    try:
63 1
        if args is not None:
64 1
            main(JsonToHtml(args))
65
        else:
66
            main(JsonToHtml(sys.argv[1:]))
67 1
    except Exception as error:
68 1
        print_detail_traceback_if_verbose(args)
69 1
        print((CRED + 'Error: {}' + CEND).format(error))
70
71
72 1
def main(client):
73 1
    results_src = []
74 1
    rules = client.search_rules_id()
75 1
    if len(rules) > 1:
76 1
        answers = client.run_gui_and_return_answers()
77 1
        if answers is not None:
78 1
            results_src = client.prepare_data(answers)
79
    else:
80 1
        results_src = client.prepare_data({'rules': [rules[0]]})
81 1
    if client.verbose:
82 1
        print_where_is_saved_result(results_src)
83
84
85 1
if __name__ == '__main__':
86 1
    if sys.argv[1] == "arf-to-graph":
87 1
        arf_to_graph(sys.argv[2:])
88 1
    elif sys.argv[1] == "arf-to-json":
89 1
        arf_to_json(sys.argv[2:])
90 1
    elif sys.argv[1] == "json-to-graph":
91 1
        json_to_graph(sys.argv[2:])
92
    elif sys.argv[1] == "arf-to-report":
93
        arf_to_report(sys.argv[2:])
94
    else:
95
        print("err- Bad command!")
96