• 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(host[i+1:])
23        host = host[:i]
24    command = ' '.join(sys.argv[2:])
25    with socket(AF_INET, SOCK_STREAM) as s:
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
37main()
38