#!/usr/bin/env python3 | |
""" | |
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() | |