diff --git a/modules/user/direnv.nix b/modules/user/direnv.nix index 05e8909..3f54b94 100644 --- a/modules/user/direnv.nix +++ b/modules/user/direnv.nix @@ -1,4 +1,4 @@ -{ config, ...}: { +{ config, lib, ... }: { programs.direnv = { enable = true; nix-direnv = { @@ -8,4 +8,9 @@ programs.git.extraConfig.core.excludesFile = ".envrc"; # We can't use .source since hm manages this file too xdg.configFile."direnv/direnvrc".text = builtins.readFile ../../res/direnvrc; + home.activation = { + direnvClearCache = lib.hm.dag.entryAfter ["writeBoundary"] '' + $DRY_RUN_CMD rm -rf $VERBOSE_ARG $HOME/.cache/direnv/layouts + ''; + }; } diff --git a/res/direnvrc b/res/direnvrc index 59902be..6de68b0 100644 --- a/res/direnvrc +++ b/res/direnvrc @@ -4,5 +4,7 @@ direnv_layout_dir() { echo "${direnv_layout_dirs[$PWD]:=$( echo -n "$XDG_CACHE_HOME"/direnv/layouts/ echo -n "$PWD" | shasum | cut -d ' ' -f 1 + echo -n "-" + basename $PWD )}" }