7e62f71931
windows/ was previously an untracked working tree with manually- copied .lua files that drifted ~6 months out of date (missed every feature added since April 2026). #18 introduces Option 1 from the issue body: build-time sync. New tracked files: - windows/sync.sh — copies root {lmcp,server,json}.lua to pkg/. Idempotent; run before WiX. Catches missing source files; logs each sync. - windows/README.md — workflow doc + tracked-vs-generated map. - windows/lmcp.wxs — MSI manifest (Version bumped 0.1.0 → 1.1.0). - windows/pkg/{install_service,start}.bat — Windows service installer + launcher (now tracked; they were already in pkg/). New .gitignore at repo root: - windows/pkg/{lmcp,server,json}.lua — regenerated by sync.sh - windows/pkg/lua/ — bundled Lua + LuaSocket runtime (downloaded separately, not in git) - editor noise (*.swp, *.swo, .DS_Store) Verification (Phase 7): $ ./windows/sync.sh synced lmcp.lua synced server.lua synced json.lua $ diff lmcp.lua windows/pkg/lmcp.lua → empty $ git ls-files -o --exclude-standard windows/ windows/README.md windows/lmcp.wxs windows/pkg/install_service.bat windows/pkg/start.bat windows/sync.sh $ git check-ignore windows/pkg/{lmcp,server,json}.lua → all 3 ignored The "missed every feature since April" failure mode this fixes: running sync.sh before each MSI build now guarantees pkg/ matches master. Forgetting to run it is failure-loud (the MSI ships the last sync's snapshot, easy to spot in QA), not silent (the manifest points at fresh files that mismatch root). Closes v1.1.0 milestone with #11, #20. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
795 B
Bash
Executable File
26 lines
795 B
Bash
Executable File
#!/bin/sh
|
|
# windows/sync.sh — refresh windows/pkg/ from root .lua sources (issue #18).
|
|
#
|
|
# Run BEFORE invoking the WiX build so the MSI bundles whatever is in
|
|
# master. The .lua files in windows/pkg/ are regenerated on every run
|
|
# and are gitignored — never edit them directly.
|
|
#
|
|
# Idempotent: re-running just re-copies. Safe to call from a Makefile,
|
|
# a CI step, or by hand before `candle.exe + light.exe`.
|
|
|
|
set -eu
|
|
|
|
here=$(dirname "$(readlink -f "$0")")
|
|
root=$(cd "$here/.." && pwd)
|
|
|
|
for f in lmcp.lua server.lua json.lua; do
|
|
if [ ! -f "$root/$f" ]; then
|
|
echo "windows/sync.sh: missing source $root/$f" >&2
|
|
exit 1
|
|
fi
|
|
cp "$root/$f" "$here/pkg/$f"
|
|
echo " synced $f"
|
|
done
|
|
|
|
echo "windows/sync.sh: done — pkg/ matches root .lua at $(date +%Y-%m-%dT%H:%M:%S)"
|