wasp: Automatically generate watch.py for PineTime

This should ensure that main.py is always up to date.
This commit is contained in:
Daniel Thompson 2020-04-11 21:12:18 +01:00
parent 7ef145cdc5
commit 50ecff29ef
4 changed files with 34 additions and 4 deletions

1
.gitignore vendored
View File

@ -4,3 +4,4 @@
__pycache__
docs/build
attic/
wasp/boards/pinetime/watch.py

View File

@ -27,7 +27,7 @@ bootloader:
softdevice:
micropython/ports/nrf/drivers/bluetooth/download_ble_stack.sh
micropython:
micropython: wasp/boards/pinetime/watch.py
$(MAKE) -C micropython/mpy-cross
$(RM) micropython/ports/nrf/build-$(BOARD)-s132/frozen_content.c
$(MAKE) -C micropython/ports/nrf \
@ -39,6 +39,10 @@ micropython:
--application micropython/ports/nrf/build-$(BOARD)-s132/firmware.hex \
micropython.zip
wasp/boards/pinetime/watch.py : wasp/boards/pinetime/watch.py.in
(cd wasp; ../tools/preprocess.py boards/pinetime/watch.py.in > \
boards/pinetime/watch.py)
dfu:
python3 -m nordicsemi dfu serial --package micropython.zip --port /dev/ttyACM0

27
tools/preprocess.py Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env python
# SPDX-License-Identifier: LGPL-3.0-or-later
# Copyright (C) 2020 Daniel Thompson
"""Quick and dirty macro processor.
Currently the only support macro is #include!
"""
import sys
def preprocess(fname):
with open(fname) as f:
for ln in f.readlines():
ln = ln.rstrip()
macro = ln.lstrip()
if macro.startswith('#include'):
exec(macro[1:])
else:
print(ln)
def include(fname):
preprocess(fname)
for arg in sys.argv[1:]:
preprocess(arg)

View File

@ -84,9 +84,7 @@ except AttributeError:
os.mount(flash,'/flash')
with open('/flash/main.py', 'w') as f:
f.write('''\
import manager
wasp = manager.Manager(watch)
wasp.run()
#include('main.py')
''')
# Only change directory if the button is not pressed (this will