{ pkgs, ... }:

let
  name = "kitaab-sync";
  # Note this will fail if index.wiki is open in vim while this runs
  mkStartScript = name: pkgs.writeShellScript "${name}.sh" ''
    set -euo pipefail
    PATH=/run/current-system/sw/bin:/etc/profiles/per-user/anish/bin:
    cd /home/anish/kitaab
    vimwiki tags rebuild
    git add -A
    git diff-index --quiet HEAD || git commit -m 'syncing kitaab' # if nothing, don't exit 1
    git push
    exit 0
  '';
in
{
  systemd.user.services.kitaab-sync = {
    Service = {
      ExecStart = "${mkStartScript name}";
    };
  };
  systemd.user.timers.kitaab-sync = {
    Install = {
      WantedBy = [ "timers.target" ];
      PartOf = [ "kitaab-sync.service" ];
    };
    Timer = {
      OnCalendar = [ "hourly" ];
    };
  };
}
