Add direnv config
This commit is contained in:
@@ -6,8 +6,8 @@
|
|||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.file.".config/direnv/direnvrc" = {
|
||||||
DIRENV_CACHE = "${config.home.homeDirectory}/.cache/direnv";
|
source = ./direnv/direnvrc;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
15
programs/direnv/direnvrc
Normal file
15
programs/direnv/direnvrc
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Place in ~/.config/direnv/direnvrc
|
||||||
|
|
||||||
|
# Two things to know:
|
||||||
|
# * `direnv_layour_dir` is called once for every {.direnvrc,.envrc} sourced
|
||||||
|
# * The indicator for a different direnv file being sourced is a different $PWD value
|
||||||
|
# This means we can hash $PWD to get a fully unique cache path for any given environment
|
||||||
|
|
||||||
|
: ${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
|
||||||
|
)}"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user