From d6080ef128404a97a0b7dc1653b78260d473f159 Mon Sep 17 00:00:00 2001 From: Quentin Aristote Date: Sun, 25 Sep 2022 14:12:11 +0200 Subject: move direnv-{clean,reload} services to home-manager --- home/config/direnv.nix | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 home/config/direnv.nix (limited to 'home/config/direnv.nix') 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 " ]; }; + }); +} + -- cgit v1.2.3