Index: gclient.py |
diff --git a/gclient.py b/gclient.py |
index 0cfb26dd7d8a13d881157a833ef4da55f0a7bb2a..3a4622ef6add43b60d7ef754ef522c637927ebaa 100644 |
--- a/gclient.py |
+++ b/gclient.py |
@@ -578,8 +578,12 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
if parsed_url: |
env['GCLIENT_URL'] = parsed_url |
if os.path.isdir(cwd): |
- gclient_utils.CheckCallAndFilter( |
- args, cwd=cwd, env=env, print_stdout=True) |
+ try: |
+ gclient_utils.CheckCallAndFilter( |
+ args, cwd=cwd, env=env, print_stdout=True) |
+ except subprocess2.CalledProcessError: |
+ if not options.ignore: |
+ raise |
else: |
print >> sys.stderr, 'Skipped missing %s' % cwd |
@@ -1154,6 +1158,8 @@ def CMDrecurse(parser, args): |
parser.disable_interspersed_args() |
parser.add_option('-s', '--scm', action='append', default=[], |
help='choose scm types to operate upon') |
+ parser.add_option('-i', '--ignore', action='store_true', |
+ help='continue processing in case of non zero return code') |
options, args = parser.parse_args(args) |
if not args: |
print >> sys.stderr, 'Need to supply a command!' |