diff options
author | Anthony Wang | 2023-06-01 16:57:42 +0000 |
---|---|---|
committer | Anthony Wang | 2023-06-01 16:57:42 +0000 |
commit | 7c22096681a3e6d3c88cf34809fdbae5efd134a5 (patch) | |
tree | 2f9fe74eaa0186e4b962cfd02f6c156110cb9252 | |
parent | 03d6b663411d7ff2be42523540572bcef9f37820 (diff) |
-rw-r--r-- | main.py | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +import os +import subprocess +import sys +import threading +import time +from flask import Flask, Response + + +app = Flask(__name__) + +@app.route('/', defaults={'path': ''}) +@app.route('/<path:path>') +def handler(path): + if path == 'favicon.ico': + return Response(status=204) + + def run(): + try: + proc = subprocess.Popen( + map(lambda x: x.replace('{PATH}', path), sys.argv[2:]), + stdout=subprocess.PIPE + ) + for c in iter(lambda: proc.stdout.read(1), b''): + yield c + finally: + proc.kill() + + return Response(run(), mimetype='text/plain') + +def fixperms(): + time.sleep(0.05) + os.chmod(sys.argv[1], 660) + +threading.Thread(target=fixperms).start() +app.run(host='unix://' + sys.argv[1]) |