diff --git a/tools/wasptool b/tools/wasptool index a6faf38..822ada9 100755 --- a/tools/wasptool +++ b/tools/wasptool @@ -83,11 +83,14 @@ def handle_rtc(c): def handle_upload(c, fname): verbose = bool(c.logfile) + c.sendline('from shell import upload') + c.expect('>>> ') + with open(fname) as f: if not verbose: print(f'Uploading {fname} ...', end='', flush=True) - c.sendline(f'upload("{fname}")') + c.sendline(f'upload("{os.path.basename(fname)}")') c.expect('=== ') paste(c, f, verbose) c.send('\x04') diff --git a/wasp/boards/pinetime/manifest.py b/wasp/boards/pinetime/manifest.py index 46016c8..3c0e19a 100644 --- a/wasp/boards/pinetime/manifest.py +++ b/wasp/boards/pinetime/manifest.py @@ -11,8 +11,9 @@ freeze('../..', 'drivers/vibrator.py', 'fonts.py', 'icons.py', - 'manager.py', 'logo.py', + 'manager.py', + 'shell.py', 'widgets.py', ), opt=3 diff --git a/wasp/shell.py b/wasp/shell.py new file mode 100644 index 0000000..5ad9623 --- /dev/null +++ b/wasp/shell.py @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: MIT +# Copyright (c) 2020 Daniel Thompson +# Copyright (c) 2016 Paul Sokolovsky + +import sys +import os + +class LS: + def __repr__(self): + self.__call__() + return "" + + def __call__(self, path="."): + l = os.listdir(path) + l.sort() + for f in l: + st = os.stat("%s/%s" % (path, f)) + if st[0] & 0x4000: # stat.S_IFDIR + print("