• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2
3"""
4Remote python client.
5Execute Python commands remotely and send output back.
6"""
7
8import sys
9from socket import socket, AF_INET, SOCK_STREAM, SHUT_WR
10
11PORT = 4127
12BUFSIZE = 1024
13
14def main():
15    if len(sys.argv) < 3:
16        print("usage: rpython host command")
17        sys.exit(2)
18    host = sys.argv[1]
19    port = PORT
20    i = host.find(':')
21    if i >= 0:
22        port = int(port[i+1:])
23        host = host[:i]
24    command = ' '.join(sys.argv[2:])
25    s = socket(AF_INET, SOCK_STREAM)
26    s.connect((host, port))
27    s.send(command.encode())
28    s.shutdown(SHUT_WR)
29    reply = b''
30    while True:
31        data = s.recv(BUFSIZE)
32        if not data:
33            break
34        reply += data
35    print(reply.decode(), end=' ')
36    s.close()
37
38main()
39