[oe-commits] Chris Larson : oe.utils: add oe_run convenience function

git version control git at git.openembedded.org
Wed Aug 25 14:33:55 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 013d632d46ef474086db46158c74f2ae158ae9ff
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=013d632d46ef474086db46158c74f2ae158ae9ff

Author: Chris Larson <chris_larson at mentor.com>
Date:   Tue Aug 24 14:06:01 2010 -0700

oe.utils: add oe_run convenience function

This one is intended to be used from python snippets in variables.  It returns
the stdout of the subprocess and raises an exception if the exit code isn't 0.

Signed-off-by: Chris Larson <chris_larson at mentor.com>

---

 classes/utils.bbclass |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/classes/utils.bbclass b/classes/utils.bbclass
index 4840c4f..0a7a045 100644
--- a/classes/utils.bbclass
+++ b/classes/utils.bbclass
@@ -63,6 +63,24 @@ def subprocess_setup():
    # non-Python subprocesses expect.
    signal.signal(signal.SIGPIPE, signal.SIG_DFL)
 
+def oe_run(d, cmd, **kwargs):
+   """Convenience function to run a command and return its output, raising an
+   exception when the command fails"""
+   from subprocess import PIPE
+
+   options = {
+      "stdout": PIPE,
+      "stderr": PIPE,
+      "shell": True,
+   }
+   options.update(kwargs)
+   pipe = oe_popen(d, cmd, **options)
+   stdout, stderr = pipe.communicate()
+   if pipe.returncode != 0:
+      raise RuntimeError("Execution of '%s' failed with '%s':\n%s" %
+                         (cmd, pipe.returncode, stderr))
+   return stdout
+
 def oe_popen(d, cmd, **kwargs):
     """ Convenience function to call out processes with our exported
     variables in the environment.





More information about the Openembedded-commits mailing list