Index: roll_dep.py |
diff --git a/roll_dep.py b/roll_dep.py |
index 568550a8b6f3c2dbe89ef6558c32ad1bd09f6bee..164bd57d4b76bbc63384b4ae85f3e82227dfa655 100755 |
--- a/roll_dep.py |
+++ b/roll_dep.py |
@@ -5,10 +5,11 @@ |
"""Rolls DEPS controlled dependency. |
-Works only with git checkout and git dependencies. |
+Works only with git checkout and git dependencies. Currently this |
+script will always roll to the tip of to origin/master. |
""" |
-import optparse |
+import argparse |
import os |
import re |
import subprocess |
@@ -53,6 +54,8 @@ def roll(root, deps_dir, key, reviewers, bug): |
raise Error('Ensure %s is clean first.' % root) |
full_dir = os.path.normpath(os.path.join(os.path.dirname(root), deps_dir)) |
+ if not os.path.isdir(full_dir): |
+ raise Error('Directory not found: %s' % deps_dir) |
head = check_output(['git', 'rev-parse', 'HEAD'], cwd=full_dir).strip() |
if not head in deps_content: |
@@ -122,21 +125,19 @@ def roll(root, deps_dir, key, reviewers, bug): |
def main(): |
- parser = optparse.OptionParser( |
- description=sys.modules[__name__].__doc__, |
- usage='roll-dep [flags] <dependency path> <variable>') |
- parser.add_option( |
- '-r', '--reviewer', default='', |
+ parser = argparse.ArgumentParser(description=__doc__) |
+ parser.add_argument('-r', '--reviewer', |
help='To specify multiple reviewers, use comma separated list, e.g. ' |
'-r joe,jane,john. Defaults to @chromium.org') |
- parser.add_option('-b', '--bug', default='') |
- options, args = parser.parse_args() |
- if not len(args) or len(args) > 2: |
- parser.error('Expect one or two arguments' % args) |
+ parser.add_argument('-b', '--bug') |
+ parser.add_argument('dep_path', help='path to dependency') |
+ parser.add_argument('key', nargs='?', |
+ help='regexp for dependency in DEPS file') |
+ args = parser.parse_args() |
reviewers = None |
- if options.reviewer: |
- reviewers = options.reviewer.split(',') |
+ if args.reviewer: |
+ reviewers = args.reviewer.split(',') |
for i, r in enumerate(reviewers): |
if not '@' in r: |
reviewers[i] = r + '@chromium.org' |
@@ -144,10 +145,10 @@ def main(): |
try: |
roll( |
os.getcwd(), |
- deps_dir=args[0], |
- key=args[1] if len(args) > 1 else None, |
+ args.dep_path, |
+ args.key, |
reviewers=reviewers, |
- bug=options.bug) |
+ bug=args.bug) |
except Error as e: |
sys.stderr.write('error: %s\n' % e) |