#!/usr/bin/env bash # Baut die Proxi-AI-Firmware zu einer flashbaren .hex. # # ./build.sh -> proxi-ai.hex # # Das Ergebnis ist ein "Universal Hex": es enthaelt den Code für micro:bit V1 # und V2 und läuft auf beiden. # # Erstmalige Einrichtung (einmalig, braucht Internet — der C++-Teil wird vom # MakeCode-Build-Service kompiliert): # npm install pxt # ./node_modules/.bin/pxt target microbit # ./node_modules/.bin/pxt install set -euo pipefail cd "$(dirname "$0")" OUT="built/binary.hex" if [[ ! -d node_modules/pxt-microbit ]]; then echo "pxt-microbit fehlt. Erst einrichten:" >&2 echo " npm install pxt && ./node_modules/.bin/pxt target microbit && ./node_modules/.bin/pxt install" >&2 exit 1 fi # Build-Kennung aus dem Quellstand erzeugen. Geflasht wird von Hand — ohne # diese Kennung sieht man dem Roboter nicht an, welcher Stand auf ihm liegt. # Der Hash läuft nur über die Quellen, version.ts selbst zählt nicht mit; # gleicher Code ergibt also immer dieselbe Kennung. BUILD_ID=$(cat main.ts proxi.ts pxt.json | sha256sum | cut -c1-7) cat > version.ts <