From b8b0d5e9c7fb6a7d130dcdd14a51ac51cf539be4 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Tue, 28 Jul 2026 23:09:02 +0530 Subject: feat(deep-clean): deep-clean deletes all generations except current one - Running deep-clean will now delete all generations for home-manager and nixos except the latest one before cleaning dangling derivations --- modules/scripts/deep-clean/script.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'modules/scripts/deep-clean') diff --git a/modules/scripts/deep-clean/script.sh b/modules/scripts/deep-clean/script.sh index dcbd62b..bb28182 100644 --- a/modules/scripts/deep-clean/script.sh +++ b/modules/scripts/deep-clean/script.sh @@ -1,30 +1,35 @@ -echo "--- Starting Nix Deep Clean ---" +#!/usr/bin/env bash +set -euo pipefail + +echo "--- Starting Nix Deep Clean (keeping only current generations) ---" if [[ $EUID -eq 0 ]]; then - echo "Error: Do not run this script with 'sudo ./clean-nix.sh'." - echo "Run it as your normal user; it will ask for your password when needed." + echo "Error: Do not run this script with sudo." + echo "Run it as your normal user; it will ask for sudo when required." exit 1 fi -echo "Cleaning system generations..." -sudo nix-env -p /nix/var/nix/profiles/system --delete-generations old +echo "Removing old NixOS system generations..." +sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +1 +echo "Removing old Home Manager generations..." if command -v home-manager &> /dev/null; then - echo "Cleaning Home Manager generations..." - home-manager expire-generations "-0 days" + home-manager generations | \ + awk 'NR>1 {print $1}' | \ + xargs -r home-manager remove-generations fi -echo "Cleaning user generations..." -nix-env --delete-generations old +echo "Removing old user profile generations..." +nix-env --delete-generations +1 -echo "Removing 'result' symlinks in current directory..." +echo "Removing result symlinks..." find . -name "result" -type l -delete -echo "Running Garbage Collector..." +echo "Running garbage collector..." sudo nix-collect-garbage -d nix-collect-garbage -d -echo "Optimising the store (deduplicating files)..." +echo "Optimising Nix store..." nix store optimise -echo "--- Clean Up Complete ---" +echo "--- Cleanup Complete ---" -- cgit v1.2.3