]> TLD Linux GIT Repositories - tld-builder.git/blobdiff - TLD_Builder/chroot.py
- import subprocess
[tld-builder.git] / TLD_Builder / chroot.py
index a489ac3cd01206a68c01e7eb09ab7420652c3893..de2459891ee81b227019d1c505c2d5892bbdddc9 100644 (file)
@@ -3,6 +3,8 @@
 import os
 import re
 import random
+import util
+import subprocess
 
 try:
     from hashlib import md5 as md5
@@ -27,7 +29,12 @@ def command_sh(cmd):
             % (config.sudo_chroot_wrapper, config.chroot, quote(cmd))
 
 def popen(cmd, user = "builder", mode = "r"):
-    f = os.popen(command(cmd, user), mode)
+    if mode == "r":
+        p = subprocess.Popen(command(cmd, user), shell=True, stdout=subprocess.PIPE, close_fds=True)
+        f = p.stdout
+    else:
+        p = subprocess.Popen(command(cmd, user), shell=True, stdin=subprocess.PIPE, close_fds=True)
+        f = p.stdin
     return f
 
 def run(cmd, user = "builder", logfile = None, logstdout = None):
@@ -49,7 +56,7 @@ def run(cmd, user = "builder", logfile = None, logstdout = None):
 
 def cp(file, outfile, user="builder", rm=False):
     m = md5()
-    m.update(str(random.sample(range(100000), 500)))
+    m.update(util.to_bytes(str(random.sample(range(100000), 500))))
     digest = m.hexdigest()
 
     marker_start = "--- FILE BEGIN DIGEST %s ---" % digest
@@ -70,11 +77,11 @@ def cp(file, outfile, user="builder", rm=False):
         me = l.find(marker_end)
         if me != -1:
             l = l[:me]
-            f.write(l)
+            f.write(util.to_bytes(l))
             marker = False
             break
         if marker:
-            f.write(l)
+            f.write(util.to_bytes(l))
     rp = p.close()
     rf = f.close()
     if rp == None: