2026-04-15 17:32:32 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
|
cat <<'EOF'
|
|
|
|
|
Usage:
|
|
|
|
|
scripts/build-and-flash-firmware.sh
|
2026-04-15 17:37:58 +02:00
|
|
|
scripts/build-and-flash-firmware.sh [variant]
|
|
|
|
|
scripts/build-and-flash-firmware.sh --variant VARIANT [mountpoint]
|
2026-04-15 17:32:32 +02:00
|
|
|
|
|
|
|
|
If no mountpoint is provided, the flash step auto-detects a standard UF2
|
|
|
|
|
bootloader location such as /run/media/$USER/RP2350 or /run/media/$USER/RPI-RP2.
|
|
|
|
|
EOF
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
|
|
|
|
|
usage
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
2026-04-15 17:37:58 +02:00
|
|
|
source "$SCRIPT_DIR/firmware-common.sh"
|
|
|
|
|
load_firmware_variants
|
|
|
|
|
|
|
|
|
|
variant_arg="${MEMLNAUT_FIRMWARE_VARIANT:-}"
|
|
|
|
|
mountpoint=""
|
|
|
|
|
|
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
|
|
|
case "$1" in
|
|
|
|
|
--variant)
|
|
|
|
|
if [[ $# -lt 2 ]]; then
|
|
|
|
|
echo "error: --variant requires a value" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
variant_arg="$2"
|
|
|
|
|
shift 2
|
|
|
|
|
;;
|
|
|
|
|
--variant=*)
|
|
|
|
|
variant_arg="${1#*=}"
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
if [[ -z "$variant_arg" ]] && resolve_firmware_variant "$1" >/dev/null 2>&1; then
|
|
|
|
|
variant_arg="$1"
|
|
|
|
|
elif [[ -z "$mountpoint" ]]; then
|
|
|
|
|
mountpoint="$1"
|
|
|
|
|
else
|
|
|
|
|
usage >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
shift
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ -n "$variant_arg" ]]; then
|
|
|
|
|
"$SCRIPT_DIR/build-firmware.sh" --variant "$variant_arg"
|
|
|
|
|
else
|
|
|
|
|
"$SCRIPT_DIR/build-firmware.sh"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ -n "$mountpoint" ]]; then
|
|
|
|
|
"$SCRIPT_DIR/flash-firmware.sh" "$mountpoint"
|
2026-04-15 17:32:32 +02:00
|
|
|
else
|
|
|
|
|
"$SCRIPT_DIR/flash-firmware.sh"
|
|
|
|
|
fi
|