diff options
Diffstat (limited to 'modules/scripts/deep-clean/script.sh')
| -rw-r--r-- | modules/scripts/deep-clean/script.sh | 31 |
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 ---" |
