Moves the auto-installer's shell script from an inline Nix string in
modules/installer/common.nix to scripts/installer/auto-install.sh, a
real, version-controlled, directly-editable/shellcheck-able file.
common.nix now wires it in with pkgs.replaceVars, substituting the one
value that actually needs to come from variables.nix (lanDomain) --
every other `${...}` in the script is a literal bash reference, left
untouched. replaceVars fails the build if any @name@-shaped placeholder
is left unsubstituted, so a typo'd or renamed variable is caught at
eval time rather than silently shipping broken.
Verified: built the substituted derivation and diffed it against the
source template -- identical except for the one substituted line, no
leftover unsubstituted placeholders. Full codex-maintenance.sh (secret
grep, fmt, statix, full eval of every host/package including the
installer/pxe artifacts that consume this) passes clean.
These were dropped from variables.nix by a stash/merge conflict
resolution on main (commit fb6ee27) that kept the new wifiSsid value
but discarded the two disk-path variables entirely, leaving unresolved
`<<<<<<< Updated upstream` markers in an intermediate commit before
being cleaned up. modules/disko/baremetal.nix references both directly
with no fallback, so baremetal-gui has been failing to evaluate on main
since that commit ("attribute 'guiRootDisk1' missing") -- confirmed by
cloning main fresh and evaluating config.disko.devices.disk.disk1.device
directly.
This commit is rebased onto latest main (through "updated secrets",
which registered baremetal-gui's real sops recipient) rather than the
older base this branch started from.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Moves the auto-installer's shell script from an inline Nix string in modules/installer/common.nix to scripts/installer/auto-install.sh, a real, version-controlled, directly-editable/shellcheck-able file. common.nix now wires it in with pkgs.replaceVars, substituting the one value that actually needs to come from variables.nix (lanDomain) -- every other `${...}` in the script is a literal bash reference, left untouched. replaceVars fails the build if any @name@-shaped placeholder is left unsubstituted, so a typo'd or renamed variable is caught at eval time rather than silently shipping broken. Verified: built the substituted derivation and diffed it against the source template -- identical except for the one substituted line, no leftover unsubstituted placeholders. Full codex-maintenance.sh (secret grep, fmt, statix, full eval of every host/package including the installer/pxe artifacts that consume this) passes clean.