left4me: install_left4me_scripts reads from scripts/{libexec,sbin}/

left4me moved its privileged helpers out of deploy/files/usr/local/
into top-level scripts/{libexec,sbin}/ (left4me commit 5284e28).
deploy/ is now a reference exemplar, not source-of-truth; the helpers
are application-inherent code that lives where the rest of the
application does.

Repoint install_left4me_scripts at the new source paths under
/opt/left4me/src/scripts/{libexec,sbin}/. Install targets unchanged
(/usr/local/{libexec,sbin}/ on the host), so the apply is a no-op
diff on the deployed file content — only the source-of-install path
moves. Verified green by `bw apply ovh.left4me` against the test
server.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
CroneKorkN 2026-05-15 12:08:36 +02:00
parent 3ccaa919ee
commit 91b7265136
Signed by: cronekorkn
SSH key fingerprint: SHA256:v0410ZKfuO1QHdgKBsdQNF64xmTxOF8osF1LIqwTcVw

View file

@ -62,9 +62,10 @@ users = {
# backup restores. 980/981 are unused elsewhere in this repo.
# Privileged helpers are installed by the `install_left4me_scripts`
# action (below) directly from the left4me git checkout — no verbatim
# copy in this bundle's files/ tree. Sudoers (further below) lists the
# specific paths that left4me may invoke as root NOPASSWD.
# action (below) directly from the left4me git checkout at
# `/opt/left4me/src/scripts/{libexec,sbin}/` — no verbatim copy in this
# bundle's files/ tree. Sudoers (further below) lists the specific
# paths that left4me may invoke as root NOPASSWD.
files = {
'/etc/left4me/sandbox-resolv.conf': {
@ -186,15 +187,16 @@ git_deploy = {
actions['install_left4me_scripts'] = {
# Copy privileged scripts from the deployed left4me checkout into
# /usr/local/{libexec,sbin}/ as root:root 0755. Source of truth for
# the file content is left4me's deploy/files/usr/local/ tree; this
# bundle no longer carries verbatim duplicates. The two install
# globs map source dirs 1:1 to deploy targets. Triggered only on
# git_deploy updates so a no-op apply doesn't re-copy.
# the file content is left4me's scripts/{libexec,sbin}/ tree (these
# are application code, not deploy artifacts; left4me's deploy/ is
# reference material only). The two install globs map source dirs
# 1:1 to deploy targets. Triggered only on git_deploy updates so a
# no-op apply doesn't re-copy.
'command': (
'install -m 0755 -o root -g root -t /usr/local/libexec/left4me/ '
'/opt/left4me/src/deploy/files/usr/local/libexec/left4me/*; '
'/opt/left4me/src/scripts/libexec/*; '
'install -m 0755 -o root -g root -t /usr/local/sbin/ '
'/opt/left4me/src/deploy/files/usr/local/sbin/*'
'/opt/left4me/src/scripts/sbin/*'
),
'triggered': True,
'cascade_skip': False,