nushell: set env in config.nu file
This commit is contained in:
parent
46c83c07b9
commit
709aaab1a5
3 changed files with 23 additions and 22 deletions
|
|
@ -205,6 +205,12 @@ in {
|
|||
(lib.mapAttrsToList (k: v: "alias ${k} = ${v}") cfg.shellAliases);
|
||||
in lib.mkIf writeConfig {
|
||||
"${configDir}/config.nu".text = lib.mkMerge [
|
||||
(let
|
||||
hasEnvVars = cfg.environmentVariables != { };
|
||||
envVarsStr = ''
|
||||
load-env ${toNushell { } cfg.environmentVariables}
|
||||
'';
|
||||
in lib.mkIf hasEnvVars envVarsStr)
|
||||
(let
|
||||
flattenSettings = let
|
||||
joinDot = a: b: "${if a == "" then "" else "${a}."}${b}";
|
||||
|
|
@ -220,6 +226,7 @@ in {
|
|||
'';
|
||||
settingsLines =
|
||||
lib.concatMapStrings mkLine (flattenSettings cfg.settings);
|
||||
|
||||
in lib.mkIf (cfg.settings != { }) settingsLines)
|
||||
(lib.mkIf (cfg.configFile != null) cfg.configFile.text)
|
||||
cfg.extraConfig
|
||||
|
|
@ -227,16 +234,10 @@ in {
|
|||
];
|
||||
})
|
||||
|
||||
(let
|
||||
hasEnvVars = cfg.environmentVariables != { };
|
||||
envVarsStr = ''
|
||||
load-env ${toNushell { } cfg.environmentVariables}
|
||||
'';
|
||||
in lib.mkIf (cfg.envFile != null || cfg.extraEnv != "" || hasEnvVars) {
|
||||
(lib.mkIf (cfg.envFile != null || cfg.extraEnv != "") {
|
||||
"${configDir}/env.nu".text = lib.mkMerge [
|
||||
(lib.mkIf (cfg.envFile != null) cfg.envFile.text)
|
||||
cfg.extraEnv
|
||||
envVarsStr
|
||||
];
|
||||
})
|
||||
(lib.mkIf (cfg.loginFile != null || cfg.extraLogin != "") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue