Completed
Push — master ( 6bbd0e...9b31df )
by John
01:18
created

linkgen_main()   A

Complexity

Conditions 1

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
1
#!/usr/bin/env python3
2
"""Generate links from OS/radio/software."""
3
4
import sys  # load arguments
5
from bbarchivist import scriptutils  # script stuff
6
from bbarchivist import networkutils  # lookup, if sw not specified
0 ignored issues
show
Unused Code introduced by
Unused networkutils imported from bbarchivist
Loading history...
7
from bbarchivist import utilities  # increment version, if radio not specified
8
from bbarchivist import textgenerator  # actually writing
0 ignored issues
show
Unused Code introduced by
Unused textgenerator imported from bbarchivist
Loading history...
9
10
__author__ = "Thurask"
11
__license__ = "WTFPL v2"
12
__copyright__ = "Copyright 2015-2016 Thurask"
13
14
15
def grab_args():
16
    """
17
    Parse arguments from argparse/questionnaire.
18
19
    Invoke :func:`linkgen.linkgen_main` with those arguments.
20
    """
21
    if len(sys.argv) > 1:
22
        parser = scriptutils.default_parser("bb-linkgen", "Bar link generation",
23
                                            ("osr"))
24
        parser.add_argument(
25
            "-r",
26
            "--radiosw",
27
            dest="altsw",
28
            metavar="SW",
29
            help="Radio software version, if not same as OS",
30
            nargs="?",
31
            default=None)
32
        parser.set_defaults()
33
        args = parser.parse_args(sys.argv[1:])
34
        linkgen_main(
35
            args.os,
36
            args.radio,
37
            args.swrelease,
38
            args.altsw)
39
    else:
40
        questionnaire()
41
42
43
def questionnaire():
44
    """
45
    Questions to ask if no arguments given.
46
    """
47
    osversion = input("OS VERSION (REQUIRED): ")
48
    radioversion = input("RADIO VERSION (PRESS ENTER TO GUESS): ")
49
    softwareversion = input("OS SOFTWARE RELEASE (PRESS ENTER TO GUESS): ")
50
    if not radioversion:
51
        radioversion = None
52
        usealt = False
53
    else:
54
        usealt = utilities.s2b(input("ALTERNATE RADIO (Y/N)?: "))
55
    if not softwareversion:
56
        softwareversion = None
57
    if usealt:
58
        altsw = input("RADIO SOFTWARE RELEASE (PRESS ENTER TO GUESS): ")
59
        if not altsw:
60
            altsw = "checkme"
61
    else:
62
        altsw = None
63
    linkgen_main(
64
        osversion,
65
        radioversion,
66
        softwareversion,
67
        altsw)
68
    scriptutils.enter_to_exit(True)
69
70
71
def linkgen_main(osversion, radioversion=None,
72
                 softwareversion=None, altsw=None, temp=False):
73
    """
74
    Generate debrick/core/radio links for given OS, radio, software release.
75
76
    :param osversion: OS version, 10.x.y.zzzz.
77
    :type osversion: str
78
79
    :param radioversion: Radio version, 10.x.y.zzzz. Can be guessed.
80
    :type radioversion: str
81
82
    :param softwareversion: Software version, 10.x.y.zzzz. Can be guessed.
83
    :type softwareversion: str
84
85
    :param altsw: Radio software release, if not the same as OS.
86
    :type altsw: str
87
88
    :param temp: If file we write to is temporary.
89
    :type temp: bool
90
    """
91
    scriptutils.linkgen(osversion, radioversion, softwareversion, altsw, temp)
92
93
94
if __name__ == "__main__":
95
    grab_args()
96