mirror of
https://github.com/thegeneralist01/config.git
synced 2026-03-07 10:59:55 +01:00
44 lines
1.5 KiB
Nix
44 lines
1.5 KiB
Nix
{ lib, ... }: {
|
|
home-manager.sharedModules = [
|
|
(homeArgs: let
|
|
direnv = lib.getExe homeArgs.config.programs.direnv.package;
|
|
in {
|
|
programs.direnv = {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
enableNushellIntegration = false;
|
|
};
|
|
|
|
programs.nushell.extraConfig = lib.mkAfter /* nu */ ''
|
|
$env.config = ($env.config? | default {})
|
|
$env.config.hooks = ($env.config.hooks? | default {})
|
|
$env.config.hooks.pre_prompt = (
|
|
$env.config.hooks.pre_prompt?
|
|
| default []
|
|
| append {||
|
|
${direnv} export json
|
|
| from json --strict
|
|
| default {}
|
|
| items {|key, value|
|
|
let value = do (
|
|
{
|
|
"PATH": {
|
|
from_string: {|s| $s | split row (char esep) | path expand --no-symlink }
|
|
to_string: {|v| $v | path expand --no-symlink | str join (char esep) }
|
|
}
|
|
}
|
|
| merge ($env.ENV_CONVERSIONS? | default {})
|
|
| get -o $key
|
|
| get -o from_string
|
|
| if ($in | is-empty) { {|x| $x} } else { $in }
|
|
) $value
|
|
return [ $key $value ]
|
|
}
|
|
| into record
|
|
| load-env
|
|
}
|
|
)
|
|
'';
|
|
})
|
|
];
|
|
}
|