#!/usr/bin/env python3 import sys oldexcepthook = sys.excepthook def newexcepthook(type,value,traceback): oldexcepthook(type,value,traceback) #input("Press ENTER to quit.") sys.excepthook = newexcepthook import os p = os.path.join pUp = os.path.dirname s = False if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'): s = os.path.realpath(sys.executable) else: s = os.path.realpath(__file__) sp = pUp(s) # script start import subprocess import socket bufferSize = 1000 # buffer size in bytes serverAddr = ("127.0.0.1",12000) connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) def listToCommand(lst): cmd = "" for arg in lst: arg = arg.replace("\\","\\\\") arg = arg.replace(",","\\,") #arg = arg.replace('"','\\"') #if " " in arg: arg = '"' +arg+ '"' cmd += arg + "," return cmd[:-1] def makePayload(lst): cmdText = listToCommand(lst) cmdBytes = cmdText.encode("utf-8") while len(cmdBytes) < 1000: cmdBytes += b" " return cmdBytes def main(): connection.settimeout(15) connection.connect(serverAddr) connection.sendall(makePayload(sys.argv[1:])) if sys.argv[1] == "watch": while True: data = connection.recv(bufferSize) if data == b"": return sys.stdout.buffer.write(data) if sys.argv[1] == "broadcast": while True: data = sys.stdin.buffer.read(bufferSize) connection.sendall(data) if __name__ == '__main__': main()