Add daily notification wakeups and a make watchapp packaging target
build / build (push) Successful in 20s

Schedules a one-shot Pebble wakeup for the configured notification
time, re-arming it on every launch and config change, and vibrates/
refreshes the report when it fires (foreground or fresh launch).
Also adds a `make watchapp` target that builds the watchapp via the
Pebble SDK and copies a versioned .pbw to dist/, matching `make
package`'s version resolution — deliberately not wired into CI, which
has no Pebble SDK installed.
This commit is contained in:
ml
2026-07-17 20:48:31 +02:00
parent 7a77c4a07d
commit 4e83ebbf50
8 changed files with 4629 additions and 1 deletions
+19
View File
@@ -20,6 +20,9 @@ make # builds dist/{deck-engine,interpreter-cli}, dist/img/, dist/i18n/
make test # builds and runs engine/tests/smoke_test.c and interpreter/tests/*_test.c
make clean # removes build/ and the generated binaries/img/i18n (never touches dist/user.properties)
make package # builds a versioned Linux CLI tarball at dist/ - see "Packaging" below
make watchapp # builds the Pebble watchapp and copies a versioned .pbw to
# dist/ - see "Packaging" below. Requires the Pebble SDK
# (not needed for anything else above); not run by CI.
```
A single `Makefile` at the repo root builds both `engine/` and
@@ -101,6 +104,22 @@ published over SFTP to `dl.ladkau.de` under `files/deck-in-a-dash/` -
requires a `DL_SFTP_KEY` secret configured on this repo (or inherited
from the org/instance level).
### Watch app packaging (`make watchapp`)
A separate target, deliberately **not** a prerequisite of `all` and
**not** run by CI - it shells out to `pebble build` inside `watch/`
(via `watch/wscript`'s own Pebble SDK/waf tooling, not this Makefile's
plain-`cc` rules) and copies the resulting `watch/build/watch.pbw` to
`dist/deck-in-a-dash-<version>.pbw`, using the exact same version
resolution as `make package` above (current git tag, or `make watchapp
VERSION=1.2.3` to override - see that section, not duplicated here).
Requires the Pebble SDK (`pebble` on `PATH`, plus the Python 3 + Pillow
`watch/wscript` needs for its resource-generation scripts) - a machine
without it can still build/test/package the CLI via every other target
in this file. Not wired into `.gitea/workflows/build.yml`: doing so
would need the Pebble SDK toolchain installed on the CI runner, which
this project doesn't currently provision.
## Architecture
```