{ config, lib, pkgs, ... }: let nixfiles = "${config.users.users.alin.home}/projects/alin.ovh/nixfiles"; in { systemd.services.update-nixfiles = { startAt = config.system.autoUpgrade.dates; wantedBy = [ "nixos-upgrade.service" ]; path = [ config.programs.git.package ]; serviceConfig = { Type = "oneshot"; User = "alin"; WorkingDirectory = "-${nixfiles}"; }; script = '' if [ ! -d "${nixfiles}" ] then mkdir -p "${nixfiles}" cd "${nixfiles}" git clone git+ssh://gitolite@git.alin.ovh/nixfiles . else git checkout -- flake.lock git pull --recurse-submodules=yes fi ''; }; systemd.services.home-manager-update = { enable = lib.mkDefault false; startAt = "weekly"; wants = [ "update-nixfiles.service" ]; path = with pkgs; [ openssh nix config.programs.git.package ]; serviceConfig = rec { Type = "oneshot"; User = "alin"; WorkingDirectory = nixfiles; ExecStart = "${lib.getExe pkgs.nh} home switch --file . homeConfigurations.${User}@%H --no-nom"; }; }; system.autoUpgrade = { enable = true; allowReboot = true; dates = "02:10"; randomizedDelaySec = "59 min"; rebootWindow = lib.mkDefault { lower = "01:00"; upper = "06:00"; }; flake = "${nixfiles}?submodules=1"; upgrade = false; }; }