]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake: Improve fetcher runcmd function so error messages are visable and various...
authorRichard Purdie <richard@openedhand.com>
Tue, 8 Apr 2008 11:34:15 +0000 (11:34 +0000)
committerRichard Purdie <richard@openedhand.com>
Tue, 8 Apr 2008 11:34:15 +0000 (11:34 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4194 311d38ba-8fff-0310-9ca6-ca027cbcb966

bitbake/lib/bb/fetch/__init__.py

index 4919b9d4730f3f15e6654ae859f6ccf3e71e63da..41eebb29b5b27dccc7fe1ac61ca9984c83c4d1c7 100644 (file)
@@ -248,13 +248,22 @@ def runfetchcmd(cmd, d, quiet = False):
     Raise an error if interrupted or cmd fails
     Optionally echo command output to stdout
     """
-    bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cmd)
 
     # Need to export PATH as binary could be in metadata paths
     # rather than host provided
-    pathcmd = 'export PATH=%s; %s' % (data.expand('${PATH}', d), cmd)
+    # Also include some other variables.
+    # FIXME: Should really include all export varaiables?
+    exportvars = ['PATH', 'GIT_PROXY_HOST', 'GIT_PROXY_PORT', 'GIT_PROXY_COMMAND']
+
+    for var in exportvars:
+        val = data.getVar(var, d, True)
+        if val:
+            cmd = 'export ' + var + '=%s; %s' % (val, cmd)
+
+    bb.msg.debug(1, bb.msg.domain.Fetcher, "Running %s" % cmd)
 
-    stdout_handle = os.popen(pathcmd, "r")
+    # redirect stderr to stdout
+    stdout_handle = os.popen(cmd + " 2>&1", "r")
     output = ""
 
     while 1:
@@ -270,9 +279,9 @@ def runfetchcmd(cmd, d, quiet = False):
     exitstatus = status & 0xff
 
     if signal:
-        raise FetchError("Fetch command %s failed with signal %s, output:\n%s" % (pathcmd, signal, output))
+        raise FetchError("Fetch command %s failed with signal %s, output:\n%s" % (cmd, signal, output))
     elif status != 0:
-        raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (pathcmd, status, output))
+        raise FetchError("Fetch command %s failed with exit code %s, output:\n%s" % (cmd, status, output))
 
     return output