use alternate direnv_layout_dir for better path names

This commit is contained in:
notgne2 2024-01-31 12:49:36 -07:00
parent 65f9fac132
commit 8cd3834ad3
Signed by: notgne2
SSH Key Fingerprint: SHA256:qlFCAimT/PvNIG3u+aYT9pIqFCWgu6sNsWjpV1vHLIE

View File

@ -13,12 +13,14 @@ inputs: all: {
enable = lib.mkDefault true;
nix-direnv.enable = lib.mkDefault true;
stdlib = ''
: ''${XDG_CACHE_HOME:=$HOME/.cache}
: "${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" | shasum | cut -d ' ' -f 1
local hash path
echo "${direnv_layout_dirs[$PWD]:=$(
hash="$(sha1sum - <<< "$PWD" | head -c40)"
path="${PWD//[^a-zA-Z0-9]/-}"
echo "${XDG_CACHE_HOME}/direnv/layouts/${hash}${path}"
)}"
}
'';