[OE-core] [PATCH 2/4] scripts: replace os.system with subprocess.call

Robert Yang liezhi.yang at windriver.com
Tue May 29 14:53:07 UTC 2012


Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2454]

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 scripts/rpm-createsolvedb.py  |    5 +++--
 scripts/swabber-strace-attach |    3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/scripts/rpm-createsolvedb.py b/scripts/rpm-createsolvedb.py
index 0d5f219..a5b61ba 100755
--- a/scripts/rpm-createsolvedb.py
+++ b/scripts/rpm-createsolvedb.py
@@ -14,6 +14,7 @@
 import sys, os
 import hashlib
 import stat
+import subprocess
 
 if len(sys.argv) < 1:
     print("Error, rpm command not specified")
@@ -44,7 +45,7 @@ for path in paths:
         continue
 
     if os.path.exists(path + "/solvedb"):
-        os.system("rm -rf %s" % (path + "/solvedb"))
+        subprocess.call("rm -rf %s" % (path + "/solvedb"), shell=True)
     os.mkdir(path + "/solvedb")
     m = open(path + "/solvedb/manifest", "w")
     m.write("# Dynamically generated solve manifest\n")
@@ -56,7 +57,7 @@ for path in paths:
 			--noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \
 			--ignoresize --nosignature --nodigest -D "__dbi_txn create nofsync" \
 			' + path + '/solvedb/manifest'
-    os.system(cmd)
+    subprocess.call(cmd, shell=True)
 
     open(path + "/solvedb.checksum", "w").write(checksum)
     open(path + "/solvedb.done", "w")
diff --git a/scripts/swabber-strace-attach b/scripts/swabber-strace-attach
index d4f80e4..bb0391a 100755
--- a/scripts/swabber-strace-attach
+++ b/scripts/swabber-strace-attach
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 import os
 import sys
+import subprocess
 
 # Detach from the controlling terminal and parent process by forking twice to daemonize ourselves,
 # then run the command passed as argv[1]. Send log data to argv[2].
@@ -24,7 +25,7 @@ os.dup2(si.fileno(), sys.stdin.fileno())
 os.dup2(so.fileno(), sys.stdout.fileno())
 os.dup2(se.fileno(), sys.stderr.fileno())
 
-ret = os.system(sys.argv[1])
+ret = subprocess.call(sys.argv[1], shell=True)
 
 os._exit(ret)
 
-- 
1.7.1





More information about the Openembedded-core mailing list