diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2022-09-25 14:12:11 +0200 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2022-09-25 14:12:11 +0200 |
| commit | d6080ef128404a97a0b7dc1653b78260d473f159 (patch) | |
| tree | 0bd433e30d78c8205912b5334848fbc4806f941e /home/config/direnv.nix | |
| parent | 6b7c3879c75f41469edc6897a9dfabf5f0ae17d9 (diff) | |
move direnv-{clean,reload} services to home-manager
Diffstat (limited to 'home/config/direnv.nix')
| -rw-r--r-- | home/config/direnv.nix | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/home/config/direnv.nix b/home/config/direnv.nix new file mode 100644 index 0000000..fc5c61b --- /dev/null +++ b/home/config/direnv.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.programs.direnv; +in { + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + + systemd.user = lib.mkIf cfg.enable + (pkgs.personal.lib.serviceWithTimer "direnv-clean-update" { + Unit = { + Description = + "Remove old virtual environments and update the current ones"; + After = [ "network-online.target" ]; + }; + Service = { + Type = "oneshot"; + ExecSearchPath = "${pkgs.coreutils}/bin:${pkgs.findutils}/bin:${pkgs.direnv}/bin"; + WorkingDirectory = "${config.home.homeDirectory}"; + ExecStart = '' + find -type d -name .direnv \ + -execdir rm -f .direnv/{nix,flake}-profile* \; \ + -execdir direnv exec . true \; + ''; + }; + Timer = { + Persistent = true; + OnCalendar = "daily"; + }; + Install = { WantedBy = [ "default.target " ]; }; + }); +} + |
