summaryrefslogtreecommitdiff
path: root/modules/git/timer-backup.nix
blob: a8c1a40bf5e630a6ddeaac597bba694aff253c8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{ config, lib, pkgs, ... }:

{
  systemd.timers."backup-repositories" = {
    wantedBy = [ "timers.target" ];
      timerConfig = {
        OnCalendar = "daily";
        Persistent = true;
        Unit = "backup-repositories.service";
      };
  };

  systemd.services."backup-repositories" = {
    script = ''
      set -xe

      cd $HOME
      mkdir -p $HOME/backups

      FILENAME=repositories-$(date +%s).tar
      FILE=$HOME/backups/$FILENAME

      REPOSITORIES=!(backups)
      tar cf $FILE $REPOSITORIES
      scp $FILE compromyse@owo.compromyse.xyz:~/backups/$FILE

      find $HOME/backups -mtime 7 -delete
    '';

    serviceConfig = {
      Type = "oneshot";
      User = "git";
    };
  };
}