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/default.nix | 1 + home/config/direnv.nix | 34 ++++++++++++++++++++++++++++++++++ home/config/environment.nix | 5 ----- 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 home/config/direnv.nix (limited to 'home') diff --git a/home/config/default.nix b/home/config/default.nix index 0d02561..7fab93f 100644 --- a/home/config/default.nix +++ b/home/config/default.nix @@ -3,6 +3,7 @@ { imports = [ ./alacritty.nix + ./direnv.nix ./environment.nix ./emacs.nix ./firefox 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 " ]; }; + }); +} + diff --git a/home/config/environment.nix b/home/config/environment.nix index 88120e9..77d00e5 100644 --- a/home/config/environment.nix +++ b/home/config/environment.nix @@ -56,11 +56,6 @@ }; }; - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - services.gpg-agent = { enable = true; enableSshSupport = true; -- cgit v1.2.3