Code Duplication    Length = 27-28 lines in 2 locations

bbarchivist/scriptutils.py 2 locations

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