aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts/deep-clean/script.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scripts/deep-clean/script.sh')
-rw-r--r--modules/scripts/deep-clean/script.sh31
1 files changed, 18 insertions, 13 deletions
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 ---"