diff options
Diffstat (limited to 'nixos/services.nix')
| -rw-r--r-- | nixos/services.nix | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/nixos/services.nix b/nixos/services.nix index 984eace..1d9d850 100644 --- a/nixos/services.nix +++ b/nixos/services.nix @@ -1,23 +1,38 @@ -{ pkgs, config, ... }: +{ lib, config, pkgs, ... }: -{ +let + direnv-reload-service = user: { + description = "Update virtual environments of user ${user}"; + + restartIfChanged = false; + unitConfig.X-StopOnRemoval = false; + serviceConfig = { + Type = "oneshot"; + User = user; + }; + + environment = { + inherit (config.environment.sessionVariables) NIX_PATH; + HOME = config.users.users."${user}".home; + }; + + path = with pkgs; [ direnv ]; + script = '' + find $HOME -type d -name .nix-gc-roots -execdir direnv exec . true \; + ''; + + after = [ "nixos-upgrade.service" ]; + wantedBy = [ "nixos-upgrade.service" ]; + }; +in { # List services that you want to enable: # Enable the OpenSSH daemon. # services.openssh.enable = true; - services = { - fcron = { - enable = true; - allow = [ "root" "qaristote" ]; - systab = '' - # Update the system. - # @daily root ${pkgs.nix}/bin/nix-channel --update; ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch - # Update virtual environments - @daily qaristote find /home/qaristote -type d -name .nix-gc-roots -execdir ${pkgs.direnv}/bin/direnv exec . true \; - ''; - }; - }; + systemd.services.direnv-reload = lib.mkIf config.system.autoUpgrade.enable + (direnv-reload-service "qaristote"); + systemd.services.nix-gc.after = [ "direnv-reload.service" ]; # virtualisation.docker.enable = true; } |
