From f6c352b5f259db809f999c90191f6d1cfb02f330 Mon Sep 17 00:00:00 2001 From: Linnnus Date: Sat, 15 Feb 2025 10:15:16 +0100 Subject: muhammed: Add launchd service to update git repos --- hosts/muhammed/update-git-repos/default.nix | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 hosts/muhammed/update-git-repos/default.nix (limited to 'hosts/muhammed/update-git-repos') 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. + }; + }; +} -- cgit v1.2.3