# HG changeset patch # User Bernhard Herzog # Date 1253281541 0 # Node ID 97c17fb0ca194338032232a49a6509297f6ea3f9 # Parent 433a49cacefccb1c55063a84347445c3bd392b1f Add --track-option command line option to set track-specific options. useful to e.g. specify a specific tag to package. diff -r 433a49cacefc -r 97c17fb0ca19 bin/runtreepkg.py --- a/bin/runtreepkg.py Wed Sep 09 16:36:23 2009 +0000 +++ b/bin/runtreepkg.py Fri Sep 18 13:45:41 2009 +0000 @@ -27,8 +27,16 @@ hdlr.setFormatter(fmt) root.addHandler(hdlr) +def handle_track_option(option, opt_str, value, parser): + parsed_options = parser.values.track_options + track_optname, value = value.split("=", 1) + trackname, optname = track_optname.split(".") + track_options = parsed_options.setdefault(trackname, dict()) + track_options[optname] = value + def parse_commandline(): parser = create_parser() + parser.set_defaults(track_options=dict()) parser.add_option("--once", action="store_true", help=("Check the packagers only once and exit afterwards." " Without this option, the tree packager will" @@ -39,6 +47,11 @@ parser.add_option("--no-svn-update", action="store_true", help=("Do not update the SVN workingcopy before" " attempting to package.")) + parser.add_option("--track-option", action="callback", type="string", + callback=handle_track_option, + help=("Sets a track-specific option." + " The argument should be of the form" + " TRACKNAME.OPTION=VALUE")) return parser.parse_args() def main(): @@ -57,6 +70,8 @@ name = opts["name"] opts["do_build"] = name in selected_tracks selected_tracks.discard(name) + if name in options.track_options: + opts.update(options.track_options[name]) for name in selected_tracks: print >>sys.stderr, "No package track found named %r" % name