Fix a bug in gclient recurse for git-svn users. Make gclient_utils.CheckCall more versatile.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/3737001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@62400 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_utils.py b/gclient_utils.py
index 3c374d5..743e57b 100644
--- a/gclient_utils.py
+++ b/gclient_utils.py
@@ -84,7 +84,7 @@
     raise
 
 
-def CheckCall(command, cwd=None, print_error=True):
+def CheckCall(command, print_error=True, **kwargs):
   """Similar subprocess.check_call() but redirects stdout and
   returns (stdout, stderr).
 
@@ -94,12 +94,13 @@
     stderr = None
     if not print_error:
       stderr = subprocess.PIPE
-    process = Popen(command, cwd=cwd, stdout=subprocess.PIPE, stderr=stderr)
+    process = Popen(command, stdout=subprocess.PIPE, stderr=stderr, **kwargs)
     std_out, std_err = process.communicate()
   except OSError, e:
-    raise CheckCallError(command, cwd, e.errno, None)
+    raise CheckCallError(command, kwargs.get('cwd', None), e.errno, None)
   if process.returncode:
-    raise CheckCallError(command, cwd, process.returncode, std_out, std_err)
+    raise CheckCallError(command, kwargs.get('cwd', None), process.returncode,
+        std_out, std_err)
   return std_out, std_err