summaryrefslogtreecommitdiff
path: root/buildtools
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-03-19 14:25:50 +1100
committerAndrew Tridgell <tridge@samba.org>2010-04-06 20:26:53 +1000
commit3ff3a11c33a8a3d9fbacf76fcf59c8c4d929e4a5 (patch)
treec05f5d35671675d5fbc6bfa67e98309a7be45b87 /buildtools
parent6e550ac4c7f2c2a2a14ed0816e439824e8c898aa (diff)
downloadsamba-3ff3a11c33a8a3d9fbacf76fcf59c8c4d929e4a5.tar.gz
samba-3ff3a11c33a8a3d9fbacf76fcf59c8c4d929e4a5.tar.bz2
samba-3ff3a11c33a8a3d9fbacf76fcf59c8c4d929e4a5.zip
build: use RUN_COMMAND() to wrap os.system()
Diffstat (limited to 'buildtools')
-rw-r--r--buildtools/wafsamba/samba_utils.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index a5d42e4f7f..cb055043a7 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -296,3 +296,21 @@ def mkdir_p(dir):
return
mkdir_p(os.path.dirname(dir))
os.mkdir(dir)
+
+
+def RUN_COMMAND(cmd,
+ env=None,
+ shell=False):
+ '''run a external command, return exit code or signal'''
+ # recursively expand variables
+ if env:
+ while cmd.find('${') != -1:
+ cmd = Utils.subst_vars(cmd, env)
+
+ status = os.system(cmd)
+ if os.WIFEXITED(status):
+ return os.WEXITSTATUS(status)
+ if os.WIFSIGNALED(status):
+ return - os.WTERMSIG(status)
+ print "Unknown exit reason %d for command: %s" (status, cmd)
+ return -1