2016-02-13 17:04:46 +01:00
|
|
|
#!/usr/bin/python
|
|
|
|
#
|
|
|
|
# Server that will communicate over stdin/stderr
|
|
|
|
#
|
|
|
|
# This requires Python 2.6 or later.
|
|
|
|
|
|
|
|
from __future__ import print_function
|
|
|
|
import sys
|
2016-06-05 16:10:57 +02:00
|
|
|
import time
|
2016-02-13 17:04:46 +01:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
if len(sys.argv) > 1:
|
2016-03-08 18:27:21 +01:00
|
|
|
if sys.argv[1].startswith("err"):
|
|
|
|
print(sys.argv[1], file=sys.stderr)
|
|
|
|
sys.stderr.flush()
|
|
|
|
else:
|
|
|
|
print(sys.argv[1])
|
|
|
|
sys.stdout.flush()
|
2016-04-26 17:16:24 +02:00
|
|
|
if sys.argv[1].startswith("quit"):
|
|
|
|
sys.exit(0)
|
2016-02-13 17:04:46 +01:00
|
|
|
|
|
|
|
while True:
|
|
|
|
typed = sys.stdin.readline()
|
|
|
|
if typed.startswith("quit"):
|
|
|
|
print("Goodbye!")
|
|
|
|
sys.stdout.flush()
|
|
|
|
break
|
2016-03-03 21:02:23 +01:00
|
|
|
if typed.startswith("echo "):
|
2016-02-13 17:04:46 +01:00
|
|
|
print(typed[5:-1])
|
|
|
|
sys.stdout.flush()
|
2017-02-06 21:56:09 +01:00
|
|
|
if typed.startswith("echosplit "):
|
|
|
|
for part in typed[10:-1].split('|'):
|
|
|
|
sys.stdout.write(part)
|
|
|
|
sys.stdout.flush()
|
|
|
|
time.sleep(0.05)
|
2016-03-08 15:37:41 +01:00
|
|
|
if typed.startswith("double "):
|
2016-02-16 19:25:12 +01:00
|
|
|
print(typed[7:-1] + "\nAND " + typed[7:-1])
|
|
|
|
sys.stdout.flush()
|
2016-06-05 16:10:57 +02:00
|
|
|
if typed.startswith("split "):
|
|
|
|
print(typed[6:-1], end='')
|
|
|
|
sys.stdout.flush()
|
|
|
|
time.sleep(0.05)
|
|
|
|
print(typed[6:-1], end='')
|
|
|
|
sys.stdout.flush()
|
|
|
|
time.sleep(0.05)
|
|
|
|
print(typed[6:-1])
|
|
|
|
sys.stdout.flush()
|
2016-03-08 15:37:41 +01:00
|
|
|
if typed.startswith("echoerr "):
|
|
|
|
print(typed[8:-1], file=sys.stderr)
|
|
|
|
sys.stderr.flush()
|
|
|
|
if typed.startswith("doubleerr "):
|
|
|
|
print(typed[10:-1] + "\nAND " + typed[10:-1], file=sys.stderr)
|
|
|
|
sys.stderr.flush()
|
2016-02-13 17:04:46 +01:00
|
|
|
|