diff options
Diffstat (limited to 'hosts/muhammed/update-git-repos')
-rw-r--r-- | hosts/muhammed/update-git-repos/default.nix | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/hosts/muhammed/update-git-repos/default.nix b/hosts/muhammed/update-git-repos/default.nix new file mode 100644 index 0000000..673f86d --- /dev/null +++ b/hosts/muhammed/update-git-repos/default.nix @@ -0,0 +1,23 @@ +{pkgs, ...}: { + launchd.agents."update-git-repos" = { + serviceConfig = { + ProgramArguments = let + script = pkgs.writeShellScript "update-git-repos" '' + printf '\x1b[1m=> Starting %s\x1b[0m\n' "$(basename "$0")" + find ~/Source ~/Projects -name '*.git' -print0 | while read -d $'\0' -r repo; do + printf '\x1b[1m=> Updating %s\x1b[0m\n' "$repo" + git -C "$repo" fetch --all + done + ''; + in + # This *should* forward the scripts output to the universal logging system. + # I can't really figure it out and I kind of hate all of Apple's tooling. + ["/bin/sh" "-c" "${script} 2>&1 | logger -s"]; + + # Only run this service when network is available. + KeepAlive.NetworkState = true; + + StartInterval = 3600; # Once an hour. + }; + }; +} |