def __setup_build_options(self): global PACKAGING_STEPS, DESTDIR_OPTION_HELP bog = optparse.OptionGroup(self.oparser, "Build options") add_option = bog.add_option add_option("-w", "--workdir", help="Specify working dir to output results [%default]" ) choices = [step.name for step in self.env.steps] help = "Target step you want to go to: %s [%%default]" % choices add_option("", "--stepto", choices=choices, help=help) add_option("", "--upto", dest="stepto", choices=choices, help="Same as --stepto option (kept for backward compatibility)." ) collectors = Collectors.map() # {collector_type: collector_class} choices = collectors.keys() help = "Input type: %s [%%default]" % ", ".join(choices) add_option("-I", "--input-type", choices=choices, help=help) drivers = Backends.map() # {backend_type: backend_class} choices = drivers.keys() help = "Packaging driver: %s [%%default]" % ", ".join(choices) add_option("", "--driver", choices=choices, help=help) add_option("", "--backend", dest="driver", choices=choices, help="Same as --driver option" ) add_option("", "--destdir", help=DESTDIR_OPTION_HELP) add_option("-P", "--template-path", **setup_template_path_option()) self.oparser.add_option_group(bog)
def main(argv=sys.argv): logging.basicConfig(format="%(asctime)s %(levelname)-7s %(message)s", datefmt="%H:%M:%S", # or "%Y-%m-%d %H:%M:%S", ) o = O.Options() (opts, args) = o.parse_args(argv[1:]) listfile = args[0] if args else opts.config ccls = Collectors.map().get(opts.input_type) collector = ccls(listfile, opts) fs = collector.collect() if not fs: raise RuntimeError("Failed to collect files from " + listfile) pkgdata = P.PkgData(opts, fs) bcls = Backends.map().get(opts.driver) backend = bcls(pkgdata) rc = backend.run() return rc
def test_05_parse_args_w_name_and_filelist_and_driver(self): name = "foo" driver = random.choice( [b for b in Backends.map().keys() if b != Backends.default()] ) o = O.Options() (opts, args) = o.parse_args( ["-n", name, "--driver", driver, "dummy_filelist.txt"] ) self.assertEquals(opts.driver, driver)
def get_backend_obj(workdir, listfile, step="build", format="tgz"): tmplpath = os.path.join(TOPDIR, "templates") btype = "buildrpm.%s" % format args = "-n foo -w %s --template-path %s -v" % (workdir, tmplpath) args += " --driver %s --stepto %s %s" % (btype, step, listfile) pkgdata = TC.init_pkgdata(args) bcls = Registry.map().get(btype) backend = bcls(pkgdata) return backend
def __init__(self, workdir, listfile, step=STEP_BUILD, btype="autotools.single.tgz"): """ Initialize backend object. """ self.workdir = workdir self.listfile = listfile self.step = step tmplpath = os.path.join(TOPDIR, "templates") args = "-n foo -w %s --template-path %s -v" % (workdir, tmplpath) args += " --driver %s --stepto %s %s" % (btype, step, listfile) pkgdata = init_pkgdata(args) bcls = Registry.map().get(btype) self.backend = bcls(pkgdata)