This commit is contained in:
John Lancaster
2024-06-16 00:25:23 -05:00
parent 28108567b3
commit db14acfe2d
3 changed files with 33 additions and 35 deletions

1
requirements.txt Normal file
View File

@@ -0,0 +1 @@
rich

View File

@@ -1,27 +1,30 @@
#!/usr/bin/env python3
#!/usr/bin/env python
import os
import subprocess
from rich import print
os.chdir('/root')
cmd = ['code', 'tunnel']
# cmd = ['echo', '"Hello world"']
print('PATH:\n' + '\n'.join(f' - {p}' for p in os.environ['PATH'].split(':')))
try:
result = subprocess.run(
cmd,
shell=True,
env=os.environ,
text=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
def run_tunnel():
process = subprocess.Popen(
['/root/code', 'tunnel'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True
)
result.check_returncode()
except subprocess.CalledProcessError as e:
print(e)
finally:
print(result.stdout)
with process.stdout:
try:
for line in iter(process.stdout.readline, ''):
print(line, end='')
except KeyboardInterrupt:
print('KeyboardInterrupt')
finally:
process.terminate()
try:
# Give some time to gracefully shutdown
returncode = process.wait(timeout=5)
except subprocess.TimeoutExpired:
print('Timeout expired, sending SIGKILL')
process.kill()
returncode = process.wait()
print(f'Process finished with {returncode}')
if __name__ == '__main__':
run_tunnel()

View File

@@ -9,16 +9,10 @@ console = Console()
print = console.print
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:
try:
sock.connect('/run/example.sock')
except Exception:
raise
else:
with console.status('Connected...'):
while True:
try:
sleep(0.1)
except KeyboardInterrupt:
break
finally:
print('Exiting')
sock.connect('/run/example.sock')
with console.status('Connected...'):
while True:
try:
sleep(0.1)
except KeyboardInterrupt:
break