aboutsummaryrefslogtreecommitdiffstats
path: root/users/hanna/configs/direnv.nix
blob: 82c4622eef60048dfbcdbaf1988d0517f30bb8b9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{ osConfig, profile, pkgs, ... }:

let
  toml = pkgs.formats.toml {};
in {
  xdg.config.files."direnv/direnv.toml" = {
    source = toml.generate "direnv.toml" {
      bash_path = "${pkgs.bash}/bin/bash";
      hide_env_diff = true;
      disable_stdin = true;
      strict_env = true;
      warn_timeout = 0;

      whitelist.prefix = [(
        if profile == "darwin"
        then "${osConfig.users.users.hanna.home}/code"
        else "${osConfig.users.users.hanna.home}/Code"
      )];
    };
  };

  xdg.config.files."direnv/direnvrc" = {
    executable = true;

    text = ''
      declare -A direnv_layout_dirs
      : ''${XDG_CACHE_HOME:=$HOME/.cache}

      direnv_layout_dir() {
        echo "''${direnv_layout_dirs[$PWD]:=$(
          echo -n "$XDG_CACHE_HOME/direnv/layouts/"
          echo -n "$PWD" | sha1sum | cut -c 1-32 | tr -d '\n'
          echo -n "-$(basename $PWD | tr 'A-Z' 'a-z')"
        )}"
      }
    '';
  };
}