| #!/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(port[i+1:]) |
| host = host[:i] |
| command = ' '.join(sys.argv[2:]) |
| s = socket(AF_INET, SOCK_STREAM) |
| 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=' ') |
| s.close() |
| |
| main() |