Code Duplication    Length = 27-28 lines in 2 locations

bbarchivist/scriptutils.py 2 locations

@@ 143-170 (lines=28) @@
140
    :type parser: argparse.ArgumentParser
141
142
    :param addition: What to add.
143
    :type addition: str
144
    """
145
    verarg = [arg for arg in parser._actions if isinstance(arg, argparse._VersionAction)][0]
146
    verarg.version = "{1}{0}".format(addition, verarg.version)
147
    return parser
148
149
150
def return_radio_version(osversion, radioversion=None):
151
    """
152
    Increment radio version, if need be.
153
154
    :param osversion: OS version.
155
    :type osversion: str
156
157
    :param radioversion: Radio version, None if incremented.
158
    :type radioversion: str
159
    """
160
    if radioversion is None:
161
        radioversion = utilities.increment(osversion, 1)
162
    return radioversion
163
164
165
def return_sw_checked(softwareversion, osversion):
166
    """
167
    Check software existence, return boolean.
168
169
    :param softwareversion: Software release version.
170
    :type softwareversion: str
171
172
    :param osversion: OS version.
173
    :type osversion: str
@@ 114-140 (lines=27) @@
111
    Generic CFP/CAP runner; Windows only.
112
113
    :param scriptname: Script name, 'bb-something'.
114
    :type scriptname: str
115
116
    :param scriptdesc: Script description, i.e. scriptname -h.
117
    :type scriptdesc: str
118
119
    :param target: Path to file to execute.
120
    :type target: str
121
122
    :param version: Version of target.
123
    :type version: str
124
    """
125
    parser = default_parser(scriptname, scriptdesc)
126
    capver = "|{0}".format(version)
127
    parser = external_version(parser, capver)
128
    parser.parse_known_args(sys.argv[1:])
129
    if utilities.is_windows():
130
        subprocess.call([target] + sys.argv[1:])
131
    else:
132
        print("Sorry, Windows only.")
133
134
135
def external_version(parser, addition):
136
    """
137
    Modify the version string of argparse.ArgumentParser, adding something.
138
139
    :param parser: Parser to modify.
140
    :type parser: argparse.ArgumentParser
141
142
    :param addition: What to add.
143
    :type addition: str