#!/bin/sh MOUNT=/mnt/sd REPO=$(realpath ..) CPY= CONFIG= TTY= UF2_DISK= CPY_DISK= set -e while test $# -gt 0 do case "$1" in --cpy) CPY=1 ;; --config=*) CONFIG="${1#*=}" ;; --uf2-disk=*) UF2_DISK="${1#*=}" ;; --cpy-disk=*) CPY_DISK="${1#*=}" ;; --help) echo "USAGE:" echo " --cpy (also) flash circuitpython" echo " --uf2-disk=/dev/sda1 path to UF2 bootloader disk for flashing CPy" echo " --cpy-disk=/dev/sda1 path to CircuitPython code disk for flashing firmware" echo " --config=config.testing.py copy a different config" echo " --tty open tty in tio" exit ;; esac shift done wait_disk() { echo "Waiting for disk(s) $@..." >&2 while true; do for disk in "$@"; do if [ -e "$disk" ]; then echo "found $disk" >&2 echo "$disk" return fi done sleep 1 done } if [ -n "$CPY" ]; then [ -z "$UF2_DISK"] && UF2_DISK=$(wait_disk /dev/disk/by-label/RPI-RP2) sudo mount "$UF2_DISK" $MOUNT -o sync,rw,uid=$(id -u),gid=$(id -g) echo -n "flashing CircuitPython..." cp adafruit-circuitpython-solderparty_rp2040_stamp-en_US-*.uf2 $MOUNT/ echo " done" echo fi [ -z "$CPY_DISK" ] && CPY_DISK=$(wait_disk /dev/disk/by-label/{CIRCUITPY,HEX33BOARD}) sudo mount "$CPY_DISK" $MOUNT -o sync,rw,uid=$(id -u),gid=$(id -g) echo -n "copying Code..." rsync -r $REPO/* $MOUNT/ echo " done" echo if [ -n "$CONFIG" ]; then echo "copying config $CONFIG..." cp $CONFIG $MOUNT/config.py echo " done" echo fi echo -n "installing libs..." circup --path $MOUNT install -r $MOUNT/requirements.txt echo " done" echo if [ -n "$TTY" ]; then echo "opening" /dev/ttyACM* exec tio /dev/ttyACM* fi