mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-13 20:30:02 +00:00
fish: use writeText for foreign-env
This commit is contained in:
parent
75575107a6
commit
367a05488f
1 changed files with 21 additions and 11 deletions
|
@ -4,12 +4,21 @@ with lib;
|
|||
|
||||
let
|
||||
|
||||
cfg = config.programs.fish;
|
||||
cfge = config.environment;
|
||||
|
||||
cfg = config.programs.fish;
|
||||
foreignEnv = pkgs.writeText "fish-foreign-env" ''
|
||||
# TODO: environment.shellInit
|
||||
${cfge.extraInit}
|
||||
'';
|
||||
|
||||
fishVariables =
|
||||
mapAttrsToList (n: v: ''set -x ${n} "${v}"'') cfg.variables;
|
||||
loginForeignEnv = pkgs.writeText "fish-login-foreign-env" ''
|
||||
# TODO: environment.loginShellInit
|
||||
'';
|
||||
|
||||
interactiveForeignEnv = pkgs.writeText "fish-interactive-foreign-env" ''
|
||||
${cfge.interactiveShellInit}
|
||||
'';
|
||||
|
||||
shell = pkgs.runCommand pkgs.fish.name
|
||||
{ buildInputs = [ pkgs.makeWrapper ]; }
|
||||
|
@ -24,6 +33,9 @@ let
|
|||
mapAttrsFlatten (k: v: "alias ${k} '${v}'") cfg.shellAliases
|
||||
);
|
||||
|
||||
fishVariables =
|
||||
mapAttrsToList (n: v: ''set -x ${n} "${v}"'') cfg.variables;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -99,10 +111,6 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
environment.etc."fish/foreign-env/shellInit".text = cfge.shellInit;
|
||||
environment.etc."fish/foreign-env/loginShellInit".text = cfge.loginShellInit;
|
||||
environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit;
|
||||
|
||||
environment.etc."fish/config.fish".text = ''
|
||||
# /etc/fish/config.fish: DO NOT EDIT -- this file has been generated automatically.
|
||||
|
||||
|
@ -112,20 +120,22 @@ in
|
|||
|
||||
${config.system.build.setEnvironment}
|
||||
|
||||
fenv source /etc/fish/foreign-env/shellInit > /dev/null
|
||||
|
||||
fenv source ${foreignEnv}
|
||||
${cfg.shellInit}
|
||||
|
||||
${concatStringsSep "\n" fishVariables}
|
||||
|
||||
if status --is-login
|
||||
fenv source /etc/fish/foreign-env/loginShellInit > /dev/null
|
||||
# TODO: environment.loginShellInit
|
||||
${cfg.loginShellInit}
|
||||
end
|
||||
|
||||
if status --is-interactive
|
||||
${fishAliases}
|
||||
fenv source /etc/fish/foreign-env/interactiveShellInit > /dev/null
|
||||
${optionalString (cfge.interactiveShellInit != "") ''
|
||||
fenv source ${interactiveForeignEnv}
|
||||
''}
|
||||
|
||||
${cfg.interactiveShellInit}
|
||||
${cfg.promptInit}
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue