diff --git a/home-manager/common.nix b/home-manager/common.nix index 0e10a51..1e46352 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() { + local hash path echo "''${direnv_layout_dirs[$PWD]:=$( - echo -n "$XDG_CACHE_HOME"/direnv/layouts/ - echo -n "$PWD" | shasum | cut -d ' ' -f 1 + hash="$(sha1sum - <<< "$PWD" | head -c40)" + path="''${PWD//[^a-zA-Z0-9]/-}" + echo "''${XDG_CACHE_HOME}/direnv/layouts/''${hash}''${path}" )}" } '';