From 32ec59e303af3b19c2d4b362873b8c2909304c08 Mon Sep 17 00:00:00 2001
From: clerie <git@clerie.de>
Date: Mon, 7 Apr 2025 21:37:47 +0200
Subject: [PATCH] pkgs/clerie-update-nixfiles: Add script to delete old
 update-nixfiles branches

---
 .../clerie-update-nixfiles/clerie-cleanup-branches.nix | 10 ++++++++++
 pkgs/clerie-update-nixfiles/clerie-cleanup-branches.sh |  7 +++++++
 pkgs/pkgs.nix                                          |  1 +
 3 files changed, 18 insertions(+)
 create mode 100644 pkgs/clerie-update-nixfiles/clerie-cleanup-branches.nix
 create mode 100755 pkgs/clerie-update-nixfiles/clerie-cleanup-branches.sh

diff --git a/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.nix b/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.nix
new file mode 100644
index 0000000..4b3aa15
--- /dev/null
+++ b/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+
+pkgs.writeShellApplication {
+  name = "clerie-cleanup-branches";
+  text = builtins.readFile ./clerie-cleanup-branches.sh;
+  runtimeInputs = with pkgs; [
+    git
+  ];
+}
+
diff --git a/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.sh b/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.sh
new file mode 100755
index 0000000..a3fa8a1
--- /dev/null
+++ b/pkgs/clerie-update-nixfiles/clerie-cleanup-branches.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+# Removes all branches from origin starting with updated-inputs-* except the 8 newest ones
+
+git fetch origin --prune
+
+git branch -r | sed "s/^ *//g" | grep "^origin/updated-inputs-" | sort | head -n -8 | sed "s/^origin\///g" | xargs git push origin --delete
diff --git a/pkgs/pkgs.nix b/pkgs/pkgs.nix
index 2b70d54..5e8c91d 100644
--- a/pkgs/pkgs.nix
+++ b/pkgs/pkgs.nix
@@ -1,5 +1,6 @@
 {
   clerie-backup = final: prev: final.callPackage ./clerie-backup {};
+  clerie-cleanup-branches = final: prev: final.callPackage ./clerie-update-nixfiles/clerie-cleanup-branches.nix {};
   clerie-keys = final: prev: final.callPackage ./clerie-keys {};
   clerie-system-remote-install = final: prev: final.callPackage ./clerie-system-remote-install {};
   clerie-system-upgrade = final: prev: final.callPackage ./clerie-system-upgrade/clerie-system-upgrade.nix {};