From 3c724a05794180df4c960adf0e9a6b71f0c15aef Mon Sep 17 00:00:00 2001 From: Nathan McCarty Date: Sat, 13 May 2023 17:24:13 -0400 Subject: [PATCH] First pass at oracles automation --- machines/oracles/automation.nix | 16 ++++++++++++++++ machines/oracles/configuration.nix | 1 + scripts/gitea/update-repo.sh | 22 ++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 machines/oracles/automation.nix create mode 100755 scripts/gitea/update-repo.sh diff --git a/machines/oracles/automation.nix b/machines/oracles/automation.nix new file mode 100644 index 0000000..4cc86e0 --- /dev/null +++ b/machines/oracles/automation.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: +let + repo-updater = pkgs.writeShellScriptBin "repo-updater" + (builtins.readFile ../../scripts/gitea/update-repo.sh); +in { + # Automate updating rust utility flake + systemd.services."rust-util-update" = { + environment = { XDG_RUNTIME_DIR = "/tmp"; }; + serviceConfig = { + ExecStart = + "${repo-updater}/bin/repo-updater gitea@git.stranger.systems:nix/Rust.git trunk"; + Type = "oneshot"; + User = "nathan"; + }; + }; +} diff --git a/machines/oracles/configuration.nix b/machines/oracles/configuration.nix index 9642772..4f7c6bc 100644 --- a/machines/oracles/configuration.nix +++ b/machines/oracles/configuration.nix @@ -1,6 +1,7 @@ { config, lib, pkgs, inputs, ... }: { + imports = [ ./automation.nix ]; # Sops setup for this machine sops.secrets = { "borg-ssh-key" = { diff --git a/scripts/gitea/update-repo.sh b/scripts/gitea/update-repo.sh new file mode 100755 index 0000000..3a77ff1 --- /dev/null +++ b/scripts/gitea/update-repo.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -eou pipefail + +TEMP_DIR=$(mktemp -d "repo-updater.XXXX" -p $XDG_RUNTIME_DIR) +pushd $TEMP_DIR + +git clone "$1" repo +pushd repo +git switch $2 + +./update.sh + +git add -A +if git commit -m "Update flake/dependencies"; then + git push -u origin $2 +else + echo "No changes made" +fi + +popd +popd +rm -rf $TEMP_DIR