Files
lavitz/Makefile
2026-02-04 15:58:01 -07:00

75 lines
1.9 KiB
Makefile

.PHONY: init install link unlink rebuild update purge edit hw help
NIXOS_DIR := /etc/nixos
REPO_DIR := $(shell pwd)
SETTINGS := settings.nix
HOSTNAME := $(shell grep 'hostname =' $(SETTINGS) | cut -d '"' -f 2)
# Colors for output
GREEN := \033[0;32m
YELLOW := \033[0;33m
RED := \033[0;31m
NC := \033[0m # No Color
help:
@echo "NixOS Config (Flake)"
@echo ""
@echo " make init - first time setup"
@echo " make hw - generate hardware-configuration.nix"
@echo " make rebuild - rebuild nixos configuration"
@echo " make update - update flake inputs and rebuild"
@echo " make purge - garbage collect"
@echo " make link - symlink to /etc/nixos"
@echo " make unlink - remove symlink"
@echo " make edit - edit settings.nix"
init:
@$(MAKE) --no-print-directory hw
@$(MAKE) --no-print-directory link
@echo ""
@echo "done. run 'make rebuild' when ready"
link:
@if [ -L "$(NIXOS_DIR)" ]; then \
sudo rm $(NIXOS_DIR); \
elif [ -d "$(NIXOS_DIR)" ]; then \
sudo mv $(NIXOS_DIR) $(NIXOS_DIR).bak; \
echo "backed up /etc/nixos to /etc/nixos.bak"; \
fi
@sudo ln -sf $(REPO_DIR) $(NIXOS_DIR)
@echo "linked $(REPO_DIR) -> $(NIXOS_DIR)"
unlink:
@if [ -L "$(NIXOS_DIR)" ]; then \
sudo rm $(NIXOS_DIR); \
sudo mkdir -p $(NIXOS_DIR); \
echo "unlinked"; \
else \
echo "/etc/nixos is not a symlink"; \
fi
rebuild:
@if [ -f hardware-configuration.nix ]; then \
git add -f -N hardware-configuration.nix; \
fi
@echo "Rebuilding system for $(HOSTNAME)..."
sudo nixos-rebuild switch --flake .#$(HOSTNAME)
update:
@echo "Updating flake inputs..."
nix flake update
@$(MAKE) --no-print-directory rebuild
purge:
sudo nix-collect-garbage -d
sudo /run/current-system/bin/switch-to-configuration boot
check:
nix flake check
hw:
sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix
edit:
@$${EDITOR:-nano} $(SETTINGS)