justfile
This commit is contained in:
1 parent
7b094256a4
commit
db47fa9663
2 files changed
+66
No files matched your search
@@ -11,5 +11,6 @@
|
|||||||
nil
|
nil
|
||||||
nixd
|
nixd
|
||||||
jujutsu
|
jujutsu
|
||||||
|
just
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
# Justfile to safely clean up NixOS profiles, keeping only the last 3 generations.
|
||||||
|
|
||||||
|
# Default recipe displays the help menu.
|
||||||
|
help:
|
||||||
|
@echo "NixOS Profile Cleanup Utility"
|
||||||
|
@echo "============================="
|
||||||
|
@echo "Available recipes:"
|
||||||
|
@echo " just dry-run - Safe preview of what will be deleted"
|
||||||
|
@echo " just clean-system - Clean system generations and update bootloader (requires sudo)"
|
||||||
|
@echo " just clean-user - Clean current user's profile generations"
|
||||||
|
@echo " just clean-home-manager - Clean Home Manager generations (if applicable)"
|
||||||
|
@echo " just clean-all - Clean everything (System, User, and Home Manager)"
|
||||||
|
|
||||||
|
# Dry run to preview changes without deleting anything.
|
||||||
|
dry-run:
|
||||||
|
@echo "=== [DRY RUN] System Profile ==="
|
||||||
|
sudo nix-env --profile /nix/var/nix/profiles/system --delete-generations +3 --dry-run
|
||||||
|
@echo "\n=== [DRY RUN] User Profile ==="
|
||||||
|
nix-env --delete-generations +3 --dry-run
|
||||||
|
@echo "\n=== [DRY RUN] Home Manager Profile ==="
|
||||||
|
@if [ -d "$HOME/.local/state/nix/profiles/home-manager" ]; then \
|
||||||
|
nix-env --profile "$HOME/.local/state/nix/profiles/home-manager" --delete-generations +3 --dry-run; \
|
||||||
|
elif [ -d "$HOME/.nix-profile" ]; then \
|
||||||
|
echo "No Home Manager directory found, but user profile exists."; \
|
||||||
|
else \
|
||||||
|
echo "No Home Manager profile detected."; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clean system generations (requires sudo).
|
||||||
|
clean-system:
|
||||||
|
@echo "--- Cleaning System Profile (SUDO) ---"
|
||||||
|
sudo nix-env --profile /nix/var/nix/profiles/system --delete-generations +3
|
||||||
|
sudo nix-collect-garbage
|
||||||
|
@echo "--- Updating Bootloader Menu ---"
|
||||||
|
sudo nixos-rebuild boot --flake
|
||||||
|
|
||||||
|
# Clean user generations (no sudo).
|
||||||
|
clean-user:
|
||||||
|
@echo "--- Cleaning User Profile ---"
|
||||||
|
nix-env --delete-generations +3
|
||||||
|
nix-collect-garbage
|
||||||
|
|
||||||
|
# Clean Home Manager generations (no sudo).
|
||||||
|
clean-home-manager:
|
||||||
|
@echo "--- Cleaning Home Manager Profile ---"
|
||||||
|
@if [ -d "$HOME/.local/state/nix/profiles/home-manager" ]; then \
|
||||||
|
nix-env --profile "$HOME/.local/state/nix/profiles/home-manager" --delete-generations +3; \
|
||||||
|
nix-collect-garbage; \
|
||||||
|
else \
|
||||||
|
echo "No Home Manager profile found. Skipping."; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clean everything in one go.
|
||||||
|
clean-all: clean-system clean-user clean-home-manager
|
||||||
|
@echo "All cleanups successfully completed!"
|
||||||
|
|
||||||
|
# Rebuild.
|
||||||
|
rebuild:
|
||||||
|
@echo "--- Rebuilding System ---"
|
||||||
|
sudo nixos-rebuild switch --flake
|
||||||
|
|
||||||
|
# Update flake.
|
||||||
|
update:
|
||||||
|
@echo "--- Updating Flake ---"
|
||||||
|
sudo nix flake update
|
||||||
Reference in new issue
Block a user