|
|
|
|
|
|
|
|
""" |
|
|
Remote python client. |
|
|
Execute Python commands remotely and send output back. |
|
|
""" |
|
|
|
|
|
import sys |
|
|
from socket import socket, AF_INET, SOCK_STREAM, SHUT_WR |
|
|
|
|
|
PORT = 4127 |
|
|
BUFSIZE = 1024 |
|
|
|
|
|
def main(): |
|
|
if len(sys.argv) < 3: |
|
|
print("usage: rpython host command") |
|
|
sys.exit(2) |
|
|
host = sys.argv[1] |
|
|
port = PORT |
|
|
i = host.find(':') |
|
|
if i >= 0: |
|
|
port = int(host[i+1:]) |
|
|
host = host[:i] |
|
|
command = ' '.join(sys.argv[2:]) |
|
|
with socket(AF_INET, SOCK_STREAM) as s: |
|
|
s.connect((host, port)) |
|
|
s.send(command.encode()) |
|
|
s.shutdown(SHUT_WR) |
|
|
reply = b'' |
|
|
while True: |
|
|
data = s.recv(BUFSIZE) |
|
|
if not data: |
|
|
break |
|
|
reply += data |
|
|
print(reply.decode(), end=' ') |
|
|
|
|
|
main() |
|
|
|