system/Makefile

77 lines
1.6 KiB
Makefile

NIX_RUN := nix run .\#
DEPS_EDITOR := \
nixeovim
DEPS_SYSTEM := \
nixpkgs \
nixpkgs-unstable \
hardware \
home-manager \
agenix \
wired \
nil
MACHINES := \
home \
asus-gl553vd
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 ;