38 lines
773 B
Nix
38 lines
773 B
Nix
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
let
|
||
|
cfg = config.krop.hm.programs.direnv;
|
||
|
in
|
||
|
{
|
||
|
options.krop.hm.programs.direnv = {
|
||
|
enable = lib.mkOption {
|
||
|
type = lib.types.bool;
|
||
|
default = true;
|
||
|
example = false;
|
||
|
description = "Enable my direnv configuration";
|
||
|
};
|
||
|
};
|
||
|
config = lib.mkif cfg.enable {
|
||
|
programs.direnv = {
|
||
|
enable = true;
|
||
|
enableZshIntegration = true;
|
||
|
nix-direnv.enable = true;
|
||
|
stdlib = ''
|
||
|
: ''${XDG_CACHE_HOME:=$HOME/.cache}
|
||
|
declare -A direnv_layout_dirs
|
||
|
direnv_layout_dir() {
|
||
|
echo "''${direnv_layout_dirs[$PWD]:=$(
|
||
|
echo -n "$XDG_CACHE_HOME"/direnv/layouts/
|
||
|
echo -n "$PWD" | sha1sum | cut -d ' ' -f 1
|
||
|
)}"
|
||
|
}
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
};
|
||
|
}
|