diff options
author | Papoteur <papoteur@mageialinux-online.org> | 2016-02-21 12:04:14 +0100 |
---|---|---|
committer | Papoteur <papoteur@mageialinux-online.org> | 2016-02-21 12:04:14 +0100 |
commit | b09cf55fc133349845f5bfed78335d93594f73a0 (patch) | |
tree | f53a84e7d122a04ef4f5556a6059d042ceda87a3 /MgaRepo/util.py | |
parent | 4d4a76f16c51a2579f7445571edebfdf3038d0dd (diff) | |
download | mgarepo-b09cf55fc133349845f5bfed78335d93594f73a0.tar mgarepo-b09cf55fc133349845f5bfed78335d93594f73a0.tar.gz mgarepo-b09cf55fc133349845f5bfed78335d93594f73a0.tar.bz2 mgarepo-b09cf55fc133349845f5bfed78335d93594f73a0.tar.xz mgarepo-b09cf55fc133349845f5bfed78335d93594f73a0.zip |
Restablish a print after a svn command
Diffstat (limited to 'MgaRepo/util.py')
-rw-r--r-- | MgaRepo/util.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/MgaRepo/util.py b/MgaRepo/util.py index 2ffd1b4..4b1308a 100644 --- a/MgaRepo/util.py +++ b/MgaRepo/util.py @@ -74,9 +74,32 @@ def execcmd(*cmd, **kwargs): else: raise Error("command failed: %s\n%s\n" % (cmdstr, output)) if verbose: + print(output) sys.stdout.write(output) return status, output +def get_output_exec(cmdstr): + output = StringIO() + err = StringIO() + p = subprocess.Popen(cmdstr, shell=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + of = p.stdout.fileno() + ef = p.stderr.fileno() + while True: + r,w,x = select.select((of,ef), (), ()) + odata = None + if of in r: + odata = (os.read(of, 8192)).decode('utf8') + output.write(odata) + edata = None + if ef in r: + edata = (os.read(ef, 8192)).decode('utf8') + err.write(edata) + status = p.poll() + if status is not None and odata == '' and edata == '': + break + return output.getvalue() + def get_auth(username=None, password=None): set_username = 1 set_password = 1 |