From 322b19b3c66d8e0807bcb42a724a1bb2ca7ec5a7 Mon Sep 17 00:00:00 2001
From: albert <albert@sysctl.io>
Date: Sat, 18 Jan 2025 00:46:54 +0100
Subject: [PATCH] Add home-manager cleanup cronjob

---
 home-manager/default.nix |  9 +++++++++
 home-manager/small.nix   | 10 ++++++++++
 2 files changed, 19 insertions(+)

diff --git a/home-manager/default.nix b/home-manager/default.nix
index 0b4041df..f38ff7e9 100644
--- a/home-manager/default.nix
+++ b/home-manager/default.nix
@@ -26,6 +26,15 @@
     sessionPath = [ "$HOME/.local/bin" ];
   };
   
+  # Clean up all but the most recent 5 home-manager configs
+  services.cron = {
+    enable = true;
+    crontab = ''
+      # Cleanup all but last 5 home-manager generations weekly on Sunday at midnight
+      0 0 * * 0 home-manager generations | tail -n +6 | awk '{print $5}' | xargs -I {} home-manager remove-generations {}
+    '';
+  };
+ 
   nixpkgs = {
     overlays = [
       # Currently in use in the Firefox config
diff --git a/home-manager/small.nix b/home-manager/small.nix
index ed47c4c4..597dc892 100644
--- a/home-manager/small.nix
+++ b/home-manager/small.nix
@@ -36,6 +36,16 @@
     sessionPath = [ "$HOME/.local/bin" ];
   };
   
+  # Clean up all but the most recent 2 home-manager configs
+  services.cron = {
+    enable = true;
+    crontab = ''
+      # Cleanup all but last 5 home-manager generations weekly on Sunday at midnight
+      0 0 * * 0 home-manager generations | tail -n +3 | awk '{print $5}' | xargs -I {} home-manager remove-generations {}
+    '';
+  };
+
+
   nixpkgs = {
     overlays = [
       # Currently in use in the Firefox config