def doJenkins(argv, bobRoot):
subHelp = "\n ... ".join(sorted(
[ "{} {}".format(c, d[1]) for (c, d) in availableJenkinsCmds.items() ]))
parser = argparse.ArgumentParser(prog="bob jenkins",
formatter_class=argparse.RawDescriptionHelpFormatter,
description="""Configure jenkins. The following subcommands are available:
bob jenkins {}
""".format(subHelp))
parser.add_argument('subcommand', help="Subcommand")
parser.add_argument('args', nargs=argparse.REMAINDER,
help="Arguments for subcommand")
parser.add_argument('-c', dest="configFile", default=[], action='append', metavar="NAME",
help="Use additional config File.")
args = parser.parse_args(argv)
recipes = RecipeSet()
recipes.defineHook('jenkinsNameFormatter', jenkinsNameFormatter)
recipes.setConfigFiles(args.configFile)
recipes.parse()
if args.subcommand in availableJenkinsCmds:
BobState().setAsynchronous()
try:
availableJenkinsCmds[args.subcommand][0](recipes, args.args)
except http.client.HTTPException as e:
raise BuildError("HTTP error: " + str(e))
except OSError as e:
raise BuildError("OS error: " + str(e))
finally:
BobState().setSynchronous()
else:
parser.error("Unknown subcommand '{}'".format(args.subcommand))
评论列表
文章目录