The full build also copies the maps into the sibling DX Life site, when it is there
`bun run build` now ends with `sync-dropin --from-config --if-present`. It copies public/dx-maps into the ONE configured host path (vite.doxa-maps-build-config.json dropin.dest, default ../doxa-life/public, or DOXA_DROPIN_DEST). No site at that path: it prints "skipped" and exits 0. Nothing else on the filesystem is searched for repos or sites. DOXA_DROPIN=off skips it even when the site is there. Without --if-present, a missing host is still an error, as before. Tested: no host skips (exit 0); a host gets 1,209 files; DOXA_DROPIN=off copies nothing; the plain command still refuses a missing host. The container's /cdn build (build-cdn.sh) does not run this chain. On this box ../doxa-life does not exist beside the doxa-maps checkouts (DX Life lives in root-dx-life), so the step is a no-op for the fleet's builds.
This commit is contained in:
parent
feb75f0f44
commit
2a4c3ddb3d
2 changed files with 9 additions and 2 deletions
|
|
@ -39,7 +39,7 @@
|
|||
* Refuses to CREATE <dest>: the drop-in folder is the host's decision, not this script's.
|
||||
* Gate: `node internal/public-hygiene-check.mjs <dest> --strict` must pass before a public push.
|
||||
*
|
||||
* Usage: node internal/sync-dropin.mjs <dest> [--from public] [--tree doxa-maps] [--keep-staging]
|
||||
* Usage: node internal/sync-dropin.mjs <dest> [--from public] [--tree doxa-maps] [--keep-staging] [--if-present]
|
||||
* [--only a,b | --from-config] [--prune] [--protect a.txt,other] [--dry-run]
|
||||
* e.g. bun run dropin (= --from-config, into dropin.dest: ../doxa-life/public)
|
||||
* Prints: copied · unchanged · deleted (stale inside the allowlist) · pruned (outside it) ·
|
||||
|
|
@ -96,6 +96,13 @@ if (PRUNE && basename(dest) === 'public') {
|
|||
console.error(`[sync-dropin] refusing --prune into ${dest}: it is a site's web-root, and --prune would delete every file of the site outside the drop-in. Sync without --prune (bun run dropin); stale files INSIDE the drop-in are still removed.`)
|
||||
process.exit(1)
|
||||
}
|
||||
// --if-present (the full build's last step): the configured host is OPTIONAL. Its absence is a skip, not an error.
|
||||
// Only the ONE configured path is checked (dropin.dest, or DOXA_DROPIN_DEST): nothing on the filesystem is searched
|
||||
// for other repos or sites. DOXA_DROPIN=off skips it even when the host is there.
|
||||
if (args.includes('--if-present')) {
|
||||
if (process.env.DOXA_DROPIN === 'off') { console.log('[sync-dropin] skipped: DOXA_DROPIN=off'); process.exit(0) }
|
||||
if (!existsSync(dest) || !statSync(dest).isDirectory()) { console.log(`[sync-dropin] skipped: no host at the configured path ${dest}`); process.exit(0) }
|
||||
}
|
||||
if (!existsSync(dest) || !statSync(dest).isDirectory()) { console.error(`[sync-dropin] dest does not exist or is not a directory: ${dest} — create the drop-in folder in the host first`); process.exit(1) }
|
||||
if (!existsSync(FROM)) { console.error(`[sync-dropin] source missing: ${FROM} — run \`bun run build\` first`); process.exit(1) }
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
"build": "bash internal/build-lock.sh",
|
||||
"build:bundle": "bun x vite build",
|
||||
"build:bundles": "node internal/run-parallel.mjs --bundles",
|
||||
"build:unlocked": "bun run gates:pre && bun run library-index && bun run check:library-index && bun run clean && bun run token && bun run build:bundles && bun run tree && bun run gates:post",
|
||||
"build:unlocked": "bun run gates:pre && bun run library-index && bun run check:library-index && bun run clean && bun run token && bun run build:bundles && bun run tree && bun run gates:post && node internal/sync-dropin.mjs --from-config --if-present",
|
||||
"build:watch": "bun x vite build --watch",
|
||||
"cap:sync": "./node_modules/.bin/cap sync android",
|
||||
"cap:verify": "test -f deployment/capacitor/android/app/src/main/assets/public/index.html && echo \"OK webDir copied\" || (echo \"FAIL: empty assets/public -> blank white screen. Check webDir.\" && exit 1)",
|
||||
|
|
|
|||
Loading…
Reference in a new issue