User insight: hardlink breakage only happens at deploy time (scp file replacement / git checkout-merge), so detection must be welded INTO the deploy pipeline, not left to daily audit. Three automatic layers, no reliance on discipline: 1. systemd path watcher (profile-scripts-sync.path): watches deploy/profile-scripts/ directory, auto-fires sync_profile_scripts.sh on any change. Verified: fires within 4s of file replacement, logs to gateway/logs/link_sync.log (runs as hmo user) 2. git hooks (.git/hooks/post-merge + post-checkout on 246 repo): auto re-link after git operations 3. Manual fallback: sync_profile_scripts.sh (now self-logging) dev-spec red line #6 updated: SSOT rule now documents the three layers and states breakage only happens at deploy time.
10 lines
213 B
SYSTEMD
10 lines
213 B
SYSTEMD
[Unit]
|
|
Description=Watch deploy/profile-scripts for changes and re-sync hardlinks
|
|
|
|
[Path]
|
|
PathChanged=/home/hmo/MoFin/deploy/profile-scripts
|
|
Unit=profile-scripts-sync.service
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|