Source code for bbarchivist.scripts.linkgen

#!/usr/bin/env python3
"""Generate links from OS/radio/software."""

import sys  # load arguments

from bbarchivist import argutils  # arguments
from bbarchivist import decorators  # enter to exit
from bbarchivist import scriptutils  # script stuff
from bbarchivist import utilities  # increment version, if radio not specified

__author__ = "Thurask"
__license__ = "WTFPL v2"
__copyright__ = "2015-2018 Thurask"


[docs]def grab_args(): """ Parse arguments from argparse/questionnaire. Invoke :func:`linkgen.linkgen_main` with those arguments. """ if len(sys.argv) > 1: parser = argutils.default_parser("bb-linkgen", "Bar link generation", ("osr")) parser.add_argument( "-r", "--radiosw", dest="altsw", metavar="SW", help="Radio software version, if not same as OS", nargs="?", default=None) parser.add_argument( "-s", "--sdk", dest="sdk", help="Force SDK images", action="store_true", default=False) parser.set_defaults() args = parser.parse_args(sys.argv[1:]) linkgen_main( args.os, args.radio, args.swrelease, args.altsw, args.sdk) else: questionnaire()
[docs]def questionnaire(): """ Questions to ask if no arguments given. """ osversion = input("OS VERSION (REQUIRED): ") radioversion = input("RADIO VERSION (PRESS ENTER TO GUESS): ") softwareversion = input("OS SOFTWARE RELEASE (PRESS ENTER TO GUESS): ") radioversion = None if not radioversion else radioversion usealt = False if not radioversion else utilities.i2b("ALTERNATE RADIO (Y/N)?: ") softwareversion = None if not softwareversion else softwareversion altsw = scriptutils.check_altsw(usealt) linkgen_main(osversion, radioversion, softwareversion, altsw) decorators.enter_to_exit(True)
[docs]def linkgen_main(osversion, radioversion=None, softwareversion=None, altsw=None, sdk=False): """ Generate debrick/core/radio links for given OS, radio, software release. :param osversion: OS version, 10.x.y.zzzz. :type osversion: str :param radioversion: Radio version, 10.x.y.zzzz. Can be guessed. :type radioversion: str :param softwareversion: Software version, 10.x.y.zzzz. Can be guessed. :type softwareversion: str :param altsw: Radio software release, if not the same as OS. :type altsw: str :param sdk: If we specifically want SDK images. Default is False. :type sdk: bool """ scriptutils.linkgen(osversion, radioversion, softwareversion, altsw, False, sdk)
if __name__ == "__main__": grab_args()