nix-conf/modules/services/repo-sync/default.nix
2023-10-12 17:47:24 +02:00

33 lines
1.2 KiB
Nix

{ lib, pkgs, ... }:
{
systemd.timers."repo-sync" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "5m";
OnUnitActiveSec = "15m";
Unit = "repo-sync.service";
};
};
systemd.services."repo-sync" = {
script = ''
${lib.getExe pkgs.git} clone git@codeberg.org:jopejoe1/nix-conf.git /var/lib/repo-sync
${lib.getExe pkgs.git} -C /var/lib/repo-sync remote add github git@github.com:jopejoe1/nix-conf.git
${lib.getExe pkgs.git} -C /var/lib/repo-sync remote add gitlab git@gitlab.com:jopejoe1/nix-conf.git
${lib.getExe pkgs.git} -C /var/lib/repo-sync pull -r github main
${lib.getExe pkgs.git} -C /var/lib/repo-sync pull -r gitlab main
${lib.getExe pkgs.nix} flake update /var/lib/repo-sync
${lib.getExe pkgs.git} -C /var/lib/repo-sync commit -m "flack.lock updated on `$(${pkgs.coreutils}/bin/date)`"
${lib.getExe pkgs.git} -C /var/lib/repo-sync push origin
${lib.getExe pkgs.git} -C /var/lib/repo-sync push github
${lib.getExe pkgs.git} -C /var/lib/repo-sync push gitlab
${pkgs.coreutils}/bin/rm -r /var/lib/repo-sync
'';
path = [pkgs.openssh];
serviceConfig = {
Type = "oneshot";
User = "root";
};
};
}