-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommandLiveOutput.py
36 lines (31 loc) · 1.06 KB
/
commandLiveOutput.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import subprocess, sys
import shlex
# invoke process
# process = subprocess.Popen(shlex.split("git clone https://github.com/ccxt/ccxt"),shell=False,stdout=subprocess.PIPE)
# # Poll process.stdout to show stdout live
# while True:
# output = process.stdout.readline()
# if process.poll() is not None:
# break
# if output:
# print (output.strip())
# rc = process.poll()
def execCommandLive(cmd, dir = None):
print("Exec Command: ",cmd,"Directory: ",dir)
print("Tokenized:", shlex.split(cmd))
if dir is None:
process = subprocess.Popen(shlex.split(cmd),shell=False,stdout=subprocess.PIPE)
else:
process = subprocess.Popen(shlex.split(cmd),shell=False,stdout=subprocess.PIPE, cwd=dir)
all = ""
# Poll process.stdout to show stdout live
while True:
output = process.stdout.readline()
if process.poll() is not None:
break
if output:
print (output.strip())
# print("2OUT:", output)
all+=str(output.strip())
rc = process.poll()
print("ALL: ",process)