diff options
Diffstat (limited to 'modules/system/deep-clean')
| -rw-r--r-- | modules/system/deep-clean/deep-clean.sh | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/modules/system/deep-clean/deep-clean.sh b/modules/system/deep-clean/deep-clean.sh index bb28182..d698bfd 100644 --- a/modules/system/deep-clean/deep-clean.sh +++ b/modules/system/deep-clean/deep-clean.sh @@ -1,35 +1,39 @@ #!/usr/bin/env bash set -euo pipefail -echo "--- Starting Nix Deep Clean (keeping only current generations) ---" +info() { printf '\033[1;34m==>\033[0m %s\n' "$*"; } +warn() { printf '\033[1;33m==> warning:\033[0m %s\n' "$*" >&2; } +error() { printf '\033[1;31m==> error:\033[0m %s\n' "$*" >&2; } +die() { error "$*"; exit 1; } + +info "Starting Nix Deep Clean (keeping only current generations)" if [[ $EUID -eq 0 ]]; then - 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 + die "Do not run this script with sudo. +Run it as your normal user; it will ask for sudo when required." fi -echo "Removing old NixOS system generations..." +info "Removing old NixOS system generations..." sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +1 -echo "Removing old Home Manager generations..." +info "Removing old Home Manager generations..." if command -v home-manager &> /dev/null; then home-manager generations | \ awk 'NR>1 {print $1}' | \ xargs -r home-manager remove-generations fi -echo "Removing old user profile generations..." +info "Removing old user profile generations..." nix-env --delete-generations +1 -echo "Removing result symlinks..." +info "Removing result symlinks..." find . -name "result" -type l -delete -echo "Running garbage collector..." +info "Running garbage collector..." sudo nix-collect-garbage -d nix-collect-garbage -d -echo "Optimising Nix store..." +info "Optimising Nix store..." nix store optimise -echo "--- Cleanup Complete ---" +info "Cleanup Complete."
\ No newline at end of file |
