https://gitlab.synchro.net/main/sbbs/-/commit/32936e72194b217d8d068f92
Modified Files:
src/doors/syncdoom/build.sh src/doors/syncduke/build.sh
Log Message:
syncduke/syncdoom: build.sh deploys to the live install, not just the repo
A sysop reported re-running build.sh without his live door binary updating. build.sh derived its destination purely from the script's own location (../../../xtrn/<door>), which is the REPO's xtrn -- correct only when the live xtrn is the repo's (the recommended SYMLINK=1 *nix install, where xtrn -> repo/xtrn). On a COPY-style install the live xtrn is a separate directory the in-tree copy never reaches, so the running door kept the old binary. The binary is a git-ignored build artifact, so unlike the tracked door files it is not carried to a live install by `git pull` / `update.js` -- build.sh is what must deliver it.
Deploy to the in-tree bundle AND, when it is a distinct directory, the live install -- located via $SBBSCTRL (install root = $SBBSCTRL/..) or an explicit $SYNCDUKE_DEST / $SYNCDOOM_DEST override. Same-directory targets (symlinked or build-in-place installs) are detected with -ef and skipped, and the deployed path is printed so a wrong guess/fallback is visible.
The -ef guard also fixes a latent abort: cp -f onto a dev symlink (xtrn/<door>/<door> -> build/<door>) is a same-file copy that errors and, under `set -e`, aborted the whole script.
Validated for both doors across three layouts: in-tree-only (SBBSCTRL unset), copy install (separate live dir gets the binary, verified byte-identical), and symlinked install (live == in-tree, skipped).
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net