]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - test/scripts/upload_feather_huzzah_circuitpython_put.sh
Untangle code and remove pylint disables
[Adafruit_Blinka-hackapet.git] / test / scripts / upload_feather_huzzah_circuitpython_put.sh
index 51134c527215498b6bdc4cb37572951777cf0490..3f6f74c95d26a5484d474f0af33ff0d3b4faa408 100755 (executable)
@@ -1,54 +1,54 @@
 #!/bin/sh
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
 PORT=/dev/ttyUSB0
 
-# create only relevant directories on the board
+export MPYCROSS=`realpath ../../../circuitpython_2.2.3/mpy-cross/mpy-cross`
+
+# switch to test sources
+cd ../src
+# create test source directories on board
 find testing -type d | \
-        grep -v -E "(^./.git|^./.idea|^./.vscode|__pycache__)" | \
-        grep -v -E '^testing/implementation/micropython*' | \
+        grep -v -E "(^./.git.*|^./.idea|^./.vscode|__pycache__)" | \
         xargs -n1 -I {} sh -c "echo Creating directory {} ...; ampy --port ${PORT} mkdir --exists-okay  {}"
-
-# put top-level .py modules in place
-for NAME in agnostic
+# compile source .py files to .mpy
+find . -type f -name '*.py' | \
+    xargs -n1 -I {} sh -c "echo compiling {} ...; ${MPYCROSS} {}"
+# upload bytecode .mpy files
+find . -type f -name '*.mpy' | \
+        xargs -n1 -I {} sh -c "echo uploading {} ...; ampy --port ${PORT} put {} {}"
+
+#switch to test libraries
+cd ../libraries/
+
+# Compile adafruit libraries to bytecode and upload
+for SUBMODULE in `find . -mindepth 1 -maxdepth 1 -type d `
 do
-    echo "Copying ${NAME}.py ..."
-    ampy --port ${PORT} put ${NAME}.py ${NAME}.py
+    cd ${SUBMODULE}
+    # create adafruit library directories on board
+    find . -mindepth 1 -type d | \
+            grep -v -E "(^./.git.*|__pycache__|^./doc.*|^./example.*)" | \
+            xargs -n1 -I {} sh -c "echo Creating directory {} ...; ampy --port ${PORT} mkdir --exists-okay  {}"
+    # compile adafruit library .py files to .mpy
+    find . -type f -name '*.py' | \
+        grep -v -E "(^./conf.py|^./docs/conf.py|^./setup.py|^./example.*)" | \
+        xargs -n1 -I {} sh -c "echo compiling {} ...; ${MPYCROSS} {}"
+    # upload adafruit library .mpy files
+    find . -type f -name '*.mpy' | \
+        xargs -n1 -I {} sh -c "echo uploading {} ...; ampy --port ${PORT} put {} {}"
+    cd ../
 done
 
-# put top-level .mpy modules in place
-for NAME in unittest
-do
-    echo "Copying ${NAME}.mpy ..."
-    ampy --port ${PORT} put ${NAME}.mpy ${NAME}.mpy
-done
-
-# recursively sync module folders excluding packages
-# already provided by circuitpython, and excluding
-# testing packages targeting micropython
-for NAME in testing
-do
-    find ${NAME} -name '*.py'| \
-    grep -v -E '^testing/implementation/micropython*' | \
-    grep -v -E '^testing/adafruit_blinka.py' | \
-    xargs -n1 -I {} sh -c "echo Copying {} ...; ampy --port ${PORT} put {} {}"
-done
-
-cd ../../
-
-
-
-# I2C dependencies
-echo "Copying module adafruit_bus_device..."
-cd Adafruit_CircuitPython_BusDevice # change into different repo
-ampy --port ${PORT} mkdir --exists-okay adafruit_bus_device
-ampy --port ${PORT} put adafruit_bus_device/__init__.py adafruit_bus_device/__init__.py
-ampy --port ${PORT} put adafruit_bus_device/i2c_device.py adafruit_bus_device/i2c_device.py
-cd ../
-
-# Compile BME280 to bytecode
-./circuitpython_2.2.3/mpy-cross/mpy-cross Adafruit_CircuitPython_BME280/adafruit_bme280.py
-
-# BME280 dependencies
-echo "Copying module adafruit_bme..."
-cd Adafruit_CircuitPython_BME280 # change into different repo
-ampy --port ${PORT} put adafruit_bme280.mpy adafruit_bme280.mpy
-cd ../
+# switch to adafruit_blinka source
+cd ../../src
+
+# create adafruit_blinka agnostic package for cross-platform logic
+ampy --port $PORT mkdir --exists-okay adafruit_blinka
+ampy --port $PORT mkdir --exists-okay adafruit_blinka/agnostic
+# upload agnostic.mpy for platform detection
+$MPYCROSS adafruit_blinka/agnostic/__init__.py
+ampy --port $PORT put adafruit_blinka/agnostic/__init__.mpy adafruit_blinka/agnostic/__init__.mpy
+# upload time.mpy for time logic
+$MPYCROSS adafruit_blinka/agnostic/time.py
+ampy --port $PORT put adafruit_blinka/agnostic/time.mpy adafruit_blinka/agnostic/time.mpy