diff options
| author | Luke Hoersten <[email protected]> | 2026-07-17 20:09:51 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-17 20:09:51 -0500 |
| commit | 6c16b354e00e916b7e252b2304b71af87981f518 (patch) | |
| tree | 17ffe1ef9575d761eb87def9423e10ee79cf88c5 /Makefile | |
| parent | 81306bf3039f24f7ace8ce9cafca31ae747ee630 (diff) | |
tools: make targets + ota.sh for the build/OTA/verify loop
make build / cleanbuild / ota / verify / check wrap the recurring dev
loop, sourcing the ESP-IDF env per-recipe. `make ota` reconfigures first
(the embedded git hash stamps at configure time only), builds, pushes,
and verifies. tools/ota.sh encodes the OTA acceptance criterion — the
new image must show pending-verify on a fresh boot before flipping to
valid; "valid" with pending-verify never seen means the device silently
booted the old slot — and re-pushes once automatically on the known
first-push rollback quirk.
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..aec0253 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +# Helper targets for the common dev loops. idf.py needs the ESP-IDF +# environment; each recipe sources it so `make build` works from a fresh +# shell (Homebrew python first on PATH, per the toolchain setup). +# +# make build incremental firmware build +# make cleanbuild wipe build/ + rebuild (fixes stale CMake cache) +# make ota fresh-stamp build + OTA push + verify (auto-retry) +# make ota VIEWPORT=<host> same, against a specific device +# make verify post-push pending-verify -> valid check only +# make check type-check the Scrypted plugin +SHELL := /bin/bash + +VIEWPORT ?= 10.0.13.83 +ESP_ENV ?= ../../env.sh +IDF = export PATH="/opt/homebrew/bin:$$PATH" && source $(ESP_ENV) >/dev/null 2>&1 && idf.py + +.PHONY: build cleanbuild ota verify check + +build: + $(IDF) build + +cleanbuild: + rm -rf build + $(IDF) build + +# The embedded git hash stamps at CMake configure time only, so an OTA of +# fresh commits must reconfigure first or the binary reports a stale SHA. +ota: + $(IDF) reconfigure >/dev/null + $(IDF) build + tools/ota.sh push $(VIEWPORT) + +verify: + tools/ota.sh verify $(VIEWPORT) + +check: + cd scrypted && npx tsc --noEmit |
