| Index: tools/push-to-trunk/push_to_trunk.py
|
| diff --git a/tools/push-to-trunk/push_to_trunk.py b/tools/push-to-trunk/push_to_trunk.py
|
| index 0dc1a077d282cf4bfe24ac31192b8ceb94df3bde..ffef74d03b52f871750578d165e6219cc890ade8 100755
|
| --- a/tools/push-to-trunk/push_to_trunk.py
|
| +++ b/tools/push-to-trunk/push_to_trunk.py
|
| @@ -26,7 +26,7 @@
|
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -import optparse
|
| +import argparse
|
| import sys
|
| import tempfile
|
| import urllib2
|
| @@ -545,32 +545,31 @@ def RunPushToTrunk(config,
|
|
|
|
|
| def BuildOptions():
|
| - result = optparse.OptionParser()
|
| - result.add_option("-a", "--author", dest="a",
|
| - help=("Specify the author email used for rietveld."))
|
| - result.add_option("-b", "--last-bleeding-edge", dest="b",
|
| - help=("Manually specify the git commit ID of the last "
|
| - "bleeding edge revision that was pushed to trunk. "
|
| - "This is used for the auto-generated ChangeLog "
|
| - "entry."))
|
| - result.add_option("-c", "--chromium", dest="c",
|
| - help=("Specify the path to your Chromium src/ "
|
| - "directory to automate the V8 roll."))
|
| - result.add_option("-f", "--force", dest="f",
|
| - help="Don't prompt the user.",
|
| - default=False, action="store_true")
|
| - result.add_option("-l", "--last-push", dest="l",
|
| - help=("Manually specify the git commit ID "
|
| - "of the last push to trunk."))
|
| - result.add_option("-m", "--manual", dest="m",
|
| - help="Prompt the user at every important step.",
|
| - default=False, action="store_true")
|
| - result.add_option("-r", "--reviewer",
|
| - help=("Specify the account name to be used for reviews."))
|
| - result.add_option("-s", "--step", dest="s",
|
| - help="Specify the step where to start work. Default: 0.",
|
| - default=0, type="int")
|
| - return result
|
| + parser = argparse.ArgumentParser()
|
| + group = parser.add_mutually_exclusive_group()
|
| + group.add_argument("-f", "--force", dest="f",
|
| + help="Don't prompt the user.",
|
| + default=False, action="store_true")
|
| + group.add_argument("-m", "--manual", dest="m",
|
| + help="Prompt the user at every important step.",
|
| + default=False, action="store_true")
|
| + parser.add_argument("-a", "--author", dest="a",
|
| + help="The author email used for rietveld.")
|
| + parser.add_argument("-b", "--last-bleeding-edge", dest="b",
|
| + help=("The git commit ID of the last bleeding edge "
|
| + "revision that was pushed to trunk. This is used "
|
| + "for the auto-generated ChangeLog entry."))
|
| + parser.add_argument("-c", "--chromium", dest="c",
|
| + help=("The path to your Chromium src/ directory to "
|
| + "automate the V8 roll."))
|
| + parser.add_argument("-l", "--last-push", dest="l",
|
| + help="The git commit ID of the last push to trunk.")
|
| + parser.add_argument("-r", "--reviewer",
|
| + help="The account name to be used for reviews.")
|
| + parser.add_argument("-s", "--step", dest="s",
|
| + help="The step where to start work. Default: 0.",
|
| + default=0, type=int)
|
| + return parser
|
|
|
|
|
| def ProcessOptions(options):
|
| @@ -580,9 +579,6 @@ def ProcessOptions(options):
|
| if not options.m and not options.reviewer:
|
| print "A reviewer (-r) is required in (semi-)automatic mode."
|
| return False
|
| - if options.f and options.m:
|
| - print "Manual and forced mode cannot be combined."
|
| - return False
|
| if not options.m and not options.c:
|
| print "A chromium checkout (-c) is required in (semi-)automatic mode."
|
| return False
|
| @@ -594,7 +590,7 @@ def ProcessOptions(options):
|
|
|
| def Main():
|
| parser = BuildOptions()
|
| - (options, args) = parser.parse_args()
|
| + options = parser.parse_args()
|
| if not ProcessOptions(options):
|
| parser.print_help()
|
| return 1
|
|
|