diff --git a/home-manager/common.nix b/home-manager/common.nix index 0e10a51..0d84f09 100644 --- a/home-manager/common.nix +++ b/home-manager/common.nix @@ -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}" )}" } '';