git-p4: add option to system() to return subshell status
authorLuke Diamand <luke@diamand.org>
Sat, 21 Nov 2015 09:54:40 +0000 (09:54 +0000)
committerJeff King <peff@peff.net>
Tue, 24 Nov 2015 20:20:15 +0000 (15:20 -0500)
Add an optional parameter ignore_error to the git-p4 system()
function. If used, it will return the subshell exit status
rather than throwing an exception.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>
git-p4.py
index 0093fa3d8391b4b56c5613b063996cc6dc5c7b60..9d55f9c1e9e33c8c0652ab1ddea2f8bbeb136c8d 100755 (executable)
--- a/git-p4.py
+++ b/git-p4.py
@@ -192,14 +192,16 @@ def p4_has_move_command():
     # assume it failed because @... was invalid changelist
     return True
 
-def system(cmd):
+def system(cmd, ignore_error=False):
     expand = isinstance(cmd,basestring)
     if verbose:
         sys.stderr.write("executing %s\n" % str(cmd))
     retcode = subprocess.call(cmd, shell=expand)
-    if retcode:
+    if retcode and not ignore_error:
         raise CalledProcessError(retcode, cmd)
 
+    return retcode
+
 def p4_system(cmd):
     """Specifically invoke p4 as the system command. """
     real_cmd = p4_build_cmd(cmd)