mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-09-26 19:57:55 +00:00
49 lines
1.4 KiB
Bash
Executable File
49 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# MeshCore's two build entry points. The mature target/profile implementation
|
|
# lives in build_legacy.sh until its callers can be migrated independently.
|
|
|
|
build_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
|
|
|
|
if [[ "${BASH_SOURCE[0]}" != "$0" ]]; then
|
|
# CI and shell contract tests source the historical helper functions.
|
|
source "${build_root}/build_legacy.sh"
|
|
return
|
|
fi
|
|
|
|
set -euo pipefail
|
|
cd -- "$build_root"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage:
|
|
bash build.sh build-firmware TARGET [build options]
|
|
bash build.sh release-build [--firmware-version VERSION] [--resume]
|
|
|
|
build-firmware builds one exact target, selecting its complete supported
|
|
profile by default. The mature target options remain available for that build.
|
|
release-build builds the canonical firmware matrix, ESP32 partition migration
|
|
images, and a verified local release bundle. It never publishes to GitHub.
|
|
EOF
|
|
}
|
|
|
|
case "${1:-}" in
|
|
build-firmware)
|
|
exec bash "${build_root}/build_legacy.sh" "$@"
|
|
;;
|
|
release-build)
|
|
shift
|
|
exec python3 "${build_root}/scripts/build_local_release.py" "$@"
|
|
;;
|
|
help|usage|-h|--help)
|
|
usage
|
|
;;
|
|
# Read-only CI queries retain their existing interface.
|
|
list|-l|get-companion-firmwares-to-build|get-repeater-firmwares-to-build|get-room-server-firmwares-to-build)
|
|
exec bash "${build_root}/build_legacy.sh" "$@"
|
|
;;
|
|
*)
|
|
usage >&2
|
|
exit 2
|
|
;;
|
|
esac
|