You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1009 B
39 lines
1009 B
#!/usr/bin/env python
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import time
|
|
import glob
|
|
import re
|
|
from subprocess import *
|
|
|
|
def main():
|
|
appImage = sys.argv[1]
|
|
print("Running app: " + appImage)
|
|
app=Popen(appImage,stdin=PIPE,stdout=PIPE)
|
|
pidString = app.stdout.readline().rstrip().decode()
|
|
pat = re.compile("my pid: (\d+)")
|
|
mat = pat.match(pidString)
|
|
if not mat:
|
|
print("Error in pid line: " + pidString)
|
|
sys.exit(1)
|
|
#while this app waits for input we are attaching Pin
|
|
cmd = [sys.argv[2]]
|
|
cmd.extend(['-pid'])
|
|
cmd.extend([mat.group(1)])
|
|
cmd.extend(sys.argv[3:])
|
|
print("Running Pin: " + " ".join(cmd))
|
|
Popen(cmd)
|
|
print("Waiting for few seconds")
|
|
time.sleep(5) #waiting for Pin to attach
|
|
#sending input to app in order to make app finish running
|
|
print("Continuing app")
|
|
(stdoutdata, stderrdata) = app.communicate(b'start')
|
|
app.wait()
|
|
print("App exited")
|
|
print(stdoutdata)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|