summaryrefslogtreecommitdiffstatshomepage
path: root/tools/pyboard.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-05-07 10:14:51 +0100
committerDamien George <damien.p.george@gmail.com>2015-05-07 10:14:51 +0100
commit4865a22f788e0997771d15e00d2d895d904eb92a (patch)
treeadf1ab5c09ead1a00af4ad7f00c9d977b36302e4 /tools/pyboard.py
parentff987ccf11ece1317ab97dbc5dd6a901ad33ddc1 (diff)
downloadmicropython-4865a22f788e0997771d15e00d2d895d904eb92a.tar.gz
micropython-4865a22f788e0997771d15e00d2d895d904eb92a.zip
tools/pyboard.py: Add "--follow" option to wait for output indefinitely.
Also flush stdout so you can see output as it comes.
Diffstat (limited to 'tools/pyboard.py')
-rwxr-xr-xtools/pyboard.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/tools/pyboard.py b/tools/pyboard.py
index 0374893a85..efb43f26c2 100755
--- a/tools/pyboard.py
+++ b/tools/pyboard.py
@@ -35,6 +35,7 @@ import serial
def stdout_write_bytes(b):
sys.stdout.buffer.write(b)
+ sys.stdout.buffer.flush()
class PyboardError(BaseException):
pass
@@ -207,6 +208,7 @@ def main():
import argparse
cmd_parser = argparse.ArgumentParser(description='Run scripts on the pyboard.')
cmd_parser.add_argument('--device', default='/dev/ttyACM0', help='the serial device of the pyboard')
+ cmd_parser.add_argument('--follow', action='store_true', help='follow the output after running the scripts [default if no scripts given]')
cmd_parser.add_argument('--test', action='store_true', help='run a small test suite on the pyboard')
cmd_parser.add_argument('files', nargs='*', help='input files')
args = cmd_parser.parse_args()
@@ -214,10 +216,14 @@ def main():
if args.test:
run_test(device=args.device)
- if len(args.files) == 0:
+ for filename in args.files:
try:
pyb = Pyboard(args.device)
- ret, ret_err = pyb.follow(timeout=None, data_consumer=stdout_write_bytes)
+ pyb.enter_raw_repl()
+ with open(filename, 'rb') as f:
+ pyfile = f.read()
+ ret, ret_err = pyb.exec_raw(pyfile, timeout=None, data_consumer=stdout_write_bytes)
+ pyb.exit_raw_repl()
pyb.close()
except PyboardError as er:
print(er)
@@ -228,14 +234,10 @@ def main():
stdout_write_bytes(ret_err)
sys.exit(1)
- for filename in args.files:
+ if args.follow or len(args.files) == 0:
try:
pyb = Pyboard(args.device)
- pyb.enter_raw_repl()
- with open(filename, 'rb') as f:
- pyfile = f.read()
- ret, ret_err = pyb.exec_raw(pyfile, timeout=None, data_consumer=stdout_write_bytes)
- pyb.exit_raw_repl()
+ ret, ret_err = pyb.follow(timeout=None, data_consumer=stdout_write_bytes)
pyb.close()
except PyboardError as er:
print(er)