refactor: resolve nushell secrets path dynamically via config.home.username
Replace hardcoded 'm3tam3re-secrets' with '${config.home.username}-secrets'
so the agenix secret file resolves automatically for any user
(m3tam3re, sascha.koenig, bob, etc.).
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.base.shell.nushell;
|
cfg = config.base.shell.nushell;
|
||||||
|
# User-specific secrets file from agenix, resolved at build time.
|
||||||
|
secretsFile = "/run/agenix/${config.home.username}-secrets";
|
||||||
in {
|
in {
|
||||||
# Enabled by default — base modules are always-on.
|
# Enabled by default — base modules are always-on.
|
||||||
options.base.shell.nushell.enable = (mkEnableOption "enable nushell") // {default = true;};
|
options.base.shell.nushell.enable = (mkEnableOption "enable nushell") // {default = true;};
|
||||||
@@ -42,15 +44,16 @@ in {
|
|||||||
| load-env
|
| load-env
|
||||||
}
|
}
|
||||||
|
|
||||||
# Load m3tam3re secrets from agenix. The secret file is Nushell code
|
# Load user-specific secrets from agenix. The secret file is Nushell code
|
||||||
# containing a `load-env { ... }` block, not KEY=VALUE lines.
|
# containing a `load-env { ... }` block, not KEY=VALUE lines.
|
||||||
# `source` resolves literal paths at parse time, so use `null` when absent.
|
# `source` resolves literal paths at parse time, so use `null` when absent.
|
||||||
const m3tam3re_secrets_file = if ("/run/agenix/m3tam3re-secrets" | path exists) {
|
# Path is resolved at Nix build time via config.home.username.
|
||||||
"/run/agenix/m3tam3re-secrets"
|
const user_secrets_file = if ("${secretsFile}" | path exists) {
|
||||||
|
"${secretsFile}"
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
source $m3tam3re_secrets_file
|
source $user_secrets_file
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configFile.text = ''
|
configFile.text = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user