makepad/tools/makepad_builder/launcher.sh
Admin 384d0e031c tools: the Builder replaces makepad_loader, the web server moves to makepad/webserver, fleet scripts, docs and the workspace members
tools/makepad_builder replaces tools/makepad_loader: one build target
shared across app builds, workspace package selection, checkout
progress on the public Git API, detached built apps with a completion
state, waits for Windows security scans, manual retry after compiler
locks, dedicated-folder installer checks, catalog and runtime fixes.
tools/web_server and its scripts leave for github.com/makepad/webserver.
Arch USB clone/restore scripts, the qwen38 box scripts and the G-belt
serial test join tools/. docs/agents records the agent workflow and the
remote-control handoff protocol; AGENTS.md forbids vendored sources and
bulk imports. Cargo.toml lists apps/wm-dyn, libs/code_language,
libs/search, libs/tar, libs/loader_bundle and tools/makepad_builder,
and drops the two removed crates.

Squashed from work:
- Share Builder target across Makepad app builds
- Fix Builder workspace package selection
- Align Builder checkout progress with public Git API
- Detach built apps and show completion state
- Wait for Windows security scans
- Offer manual retry after Windows compiler locks
- docs: the agent workflow of record and the remote-control handoff protocol
- builder: dedicated-folder installer checks, catalog and runtime fixes; Windows job objects hold c_void handles
- tools: Arch USB clone/restore scripts, the qwen38 box scripts, and the G-belt serial test
- tools: the web server moves to makepad/webserver
- AGENTS.md: no vendored sources or bulk imports in the tree

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 12:17:59 +02:00

29 lines
1.2 KiB
Bash

#!/bin/sh
# Keep the invoking directory. Only the app command is exposed on PATH.
set -eu
builder_script=$0
while [ -L "$builder_script" ]; do
builder_directory=$(cd -P -- "$(dirname -- "$builder_script")" && pwd)
builder_link=$(readlink "$builder_script")
case "$builder_link" in /*) builder_script=$builder_link ;; *) builder_script=$builder_directory/$builder_link ;; esac
done
builder_directory=$(cd -P -- "$(dirname -- "$builder_script")" && pwd)
unset MAKEPAD_LOADER_EMAIL MAKEPAD_PACKAGE_DIR
if [ "$#" -gt 0 ]; then
case "$1" in -*) ;; *) set -- --cwd "$@" ;; esac
fi
if [ "$(uname -s)" = Darwin ]; then
# The shell command opens the invoking directory; Dock launches use the
# bundle's saved project. Keep the two entry points consistent.
for builder_app in "$builder_directory/"*.app; do
if [ -x "$builder_app/Contents/MacOS/@APP_BINARY@" ]; then
builder_has_cwd=0
for builder_arg in "$@"; do
[ "$builder_arg" != --cwd ] || builder_has_cwd=1
done
if [ "$builder_has_cwd" = 0 ]; then set -- --cwd "$PWD" "$@"; fi
exec "$builder_app/Contents/MacOS/@APP_BINARY@" "$@"
fi
done
fi
exec "$builder_directory/@APP_BINARY@.bin" "$@"