summaryrefslogtreecommitdiffstats
path: root/Tools/demo/rpython.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/demo/rpython.py')
-rwxr-xr-xTools/demo/rpython.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/Tools/demo/rpython.py b/Tools/demo/rpython.py
new file mode 100755
index 0000000..5e7bc0a
--- /dev/null
+++ b/Tools/demo/rpython.py
@@ -0,0 +1,38 @@
+#!/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()