Executable
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
# Stage and release both Pear apps (bare-os-seeder, bare-os-booter).
|
||||
# Run from anywhere; resolves repo root from this script's location.
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
SEEDER="$ROOT/packages/bare-os-seeder"
|
||||
BOOTER="$ROOT/packages/bare-os-booter"
|
||||
PROTO="$ROOT/packages/bare-os-protocol"
|
||||
|
||||
log() {
|
||||
printf '\n%s\n' "$*"
|
||||
}
|
||||
|
||||
ensure_root_deps() {
|
||||
if [[ ! -d "$ROOT/node_modules" ]]; then
|
||||
log "Installing workspace deps (npm ci)…"
|
||||
(cd "$ROOT" && npm ci)
|
||||
fi
|
||||
}
|
||||
|
||||
# Pear bundles each package dir; hoisted deps live at repo root — symlink + real copy of workspace protocol.
|
||||
prepare_pkg_for_pear() {
|
||||
local pkg="$1"
|
||||
local nm="$pkg/node_modules"
|
||||
if [[ -L "$nm" ]]; then
|
||||
:
|
||||
elif [[ -d "$nm" ]]; then
|
||||
log "WARN: $nm is a real directory (not symlink). Skipping node_modules symlink; ensure dependencies are available."
|
||||
else
|
||||
log "Linking $nm -> ../../node_modules"
|
||||
ln -sf ../../node_modules "$nm"
|
||||
fi
|
||||
rm -rf "$nm/bare-os-protocol"
|
||||
log "Copying bare-os-protocol into $(basename "$pkg")/node_modules"
|
||||
cp -R "$PROTO" "$nm/bare-os-protocol"
|
||||
}
|
||||
|
||||
log "Repo root: $ROOT"
|
||||
ensure_root_deps
|
||||
|
||||
log "Sync kernel/ -> packages/bare-os-seeder/kernel/"
|
||||
mkdir -p "$SEEDER/kernel"
|
||||
cp -R "$ROOT/kernel/." "$SEEDER/kernel/"
|
||||
|
||||
prepare_pkg_for_pear "$SEEDER"
|
||||
prepare_pkg_for_pear "$BOOTER"
|
||||
|
||||
log "Staging bare-os-seeder…"
|
||||
(cd "$SEEDER" && pear stage bare-os-seeder --no-ask)
|
||||
log "Releasing bare-os-seeder…"
|
||||
(cd "$SEEDER" && pear release bare-os-seeder)
|
||||
|
||||
log "Staging bare-os-booter…"
|
||||
(cd "$BOOTER" && pear stage bare-os-booter --no-ask)
|
||||
log "Releasing bare-os-booter…"
|
||||
(cd "$BOOTER" && pear release bare-os-booter)
|
||||
|
||||
log "Done. Use pear stage … --json | tail -1 for verlink, or pear run pear://<key>"
|
||||
Reference in New Issue
Block a user