Skip to main content

max / balanced_breakfast

Add Bento build recipes (linux, windows) Per-platform .rhai recipes under dist/recipes/ for bentod. macOS/iOS deferred until BB gains Developer ID signing/notarization infra and an iOS project; BB is a later launch wave. Un-ignore dist/recipes/ (non-secret). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-06-16 18:31 UTC
Commit: 4948e9a23661d0b4c3babee0ea2d69dfbad14fc3
Parent: b453631
3 files changed, +62 insertions, -2 deletions
M .gitignore +4 -2
@@ -18,8 +18,10 @@ plugins/*.dylib
18 18 plugins/*.so
19 19 plugins/*.dll
20 20
21 - # Release artifacts
22 - dist/
21 + # Release artifacts (secret signing scripts stay Syncthing-only); Bento build
22 + # recipes are non-secret and tracked.
23 + dist/*
24 + !dist/recipes/
23 25
24 26 # Tauri generated
25 27 src-tauri/gen/
@@ -0,0 +1,30 @@
1 + // Balanced Breakfast — Linux release recipe for Bento (x86_64 fw13, aarch64 astra).
2 + //
3 + // BB is a Tauri app like GoingsOn; one recipe serves both arches via
4 + // build_host(). Ports _private/docs/balanced_breakfast/deploy.md (Linux
5 + // sections): a signed `cargo tauri build` (updater key signs the OTA artifact),
6 + // then collect the AppImage + .deb. BB bundles its Rhai plugins + themes as
7 + // resources at build time. OTA upload stays manual via the MNW dashboard.
8 + //
9 + // Note: BB is NOT in the launch wave; ships in a later wave.
10 +
11 + let h = build_host();
12 + let v = version();
13 + let r = repo();
14 +
15 + step("checkout");
16 + sh_ok(h, "cd " + r + " && git pull --ff-only");
17 +
18 + step("build");
19 + sh_ok(h, "cd " + r + " && . ~/.tauri/passwords.env && " +
20 + "TAURI_SIGNING_PRIVATE_KEY=$HOME/.tauri/balanced-breakfast.key " +
21 + "TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$BB_TAURI_PASSWORD " +
22 + "cargo tauri build");
23 +
24 + step("collect");
25 + let appimage = sh(h, "ls -t " + r + "/target/release/bundle/appimage/*.AppImage | head -1").stdout_tail.trim();
26 + if appimage == "" { throw "no .AppImage produced for " + target(); }
27 + collect(h, appimage, "balanced_breakfast", v);
28 + let deb = sh(h, "ls -t " + r + "/target/release/bundle/deb/*.deb 2>/dev/null | head -1").stdout_tail.trim();
29 + if deb != "" { collect(h, deb, "balanced_breakfast", v); }
30 + log("Balanced Breakfast " + target() + " v" + v + " collected.");
@@ -0,0 +1,28 @@
1 + // Balanced Breakfast — Windows (x86_64) release recipe for Bento.
2 + //
3 + // UNSUPPORTED at launch and NOT in the launch wave. Binaries ship unsigned.
4 + // Best-effort, not exercised end-to-end through Bento. The checkout is at a
5 + // Windows path (not repo()), commands run through PowerShell over ssh, and the
6 + // `passwords.ps1` profile supplies the signing env. Mirrors deploy.md.
7 + //
8 + // Known BB-Windows gotcha (deploy.md): unset RUSTC_WRAPPER if sccache is set —
9 + // it crashes compiling the `ico` crate.
10 +
11 + let h = build_host();
12 + let v = version();
13 + let win_repo = "C:/Users/me/Code/Apps/balanced_breakfast";
14 +
15 + step("checkout");
16 + sh_ok(h, "powershell -Command \"cd " + win_repo + "; git pull --ff-only\"");
17 +
18 + step("build");
19 + sh_ok(h, "powershell -Command \". C:\\Users\\me\\.tauri\\passwords.ps1; " +
20 + "$env:RUSTC_WRAPPER=''; " +
21 + "$env:TAURI_SIGNING_PRIVATE_KEY='C:\\Users\\me\\.tauri\\balanced-breakfast.key'; " +
22 + "$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD=$env:BB_TAURI_PASSWORD; " +
23 + "cd " + win_repo + "; cargo tauri build\"");
24 +
25 + step("collect");
26 + collect(h, win_repo + "/target/release/bundle/msi/*.msi", "balanced_breakfast", v);
27 + collect(h, win_repo + "/target/release/bundle/nsis/*-setup.exe", "balanced_breakfast", v);
28 + log("Balanced Breakfast windows/x86_64 v" + v + " collected (unsigned, unsupported).");