NIX := nix --experimental-features "nix-command flakes" DEPS_EDITOR := \ nixeovim DEPS_SYSTEM := \ nixpkgs \ nixpkgs-unstable \ hardware \ home-manager \ agenix \ wired \ nil MACHINES := \ home \ asus-gl553vd \ macbook-pro VPS := \ istal \ tatos .PHONY: help help: bat -p Makefile ################################################################################ # Hosts ################################################################################ define machine_rule .PHONY: $(1) $(1): ; # systemctl --user reset-failed sudo $(NIX) run -L $(NIX_ARGS) .#switch/$(1) -- $(BUILD_ARGS) endef define vps_rule .PHONY: $(1) $(1): ; $(NIX) run -L .#deploy/$(1) -- $(BUILD_ARGS) endef $(foreach machine,$(MACHINES),$(eval $(call machine_rule,$(machine)))) $(foreach vps,$(VPS),$(eval $(call vps_rule,$(vps)))) .PHONY: rollback rollback: sudo nixos-rebuild switch --rollback ################################################################################ # Editor ################################################################################ .PHONY: neovim neovim: $(NIX) profile upgrade $(or $(NEOVIM_INDEX),$(shell $(NIX) profile list --json | jq '.elements | to_entries[] | select(.value.attrPath | endswith(".neovim-dev")) | .key')) .PHONY: install/neovim install/neovim: $(NIX) profile install .#neovim-dev ################################################################################ # Deps ################################################################################ .PHONY: deps/editor deps/editor: $(NIX) flake update $(DEPS_EDITOR) .PHONY: deps/system deps/system: $(NIX) flake update $(DEPS_SYSTEM) .PHONY: deps deps: deps/editor deps/system ;