NIX_RUN := sudo nix run .\#
NIX_LOCK := nix flake lock

DEPS_MY := \
	myneovim \
	mytools \
	vnetod

DEPS_NIXOS := \
	nixpkgs \
	hardware \
	home-manager \
	agenix

DEPS_MISC := \
	wired \
	nil \
	mailserver

MACHINES := \
	home \
	asus-gl553vd

VPS := \
	magenta

help:
	cat Makefile

define machine_rule
$(1): ; $$(NIX_RUN)switch/$(1)
$(1)-test: ; $$(NIX_RUN)test/$(1)
endef

define vps_rule
$(1): ; $$(NIX_RUN)deploy/$(1)
endef

$(foreach machine,$(MACHINES),$(eval $(call machine_rule,$(machine))))
$(foreach vps,$(VPS),$(eval $(call vps_rule,$(vps))))

deps-bump-my:
	$(NIX_LOCK) $(foreach dep,$(DEPS_MY),--update-input $(dep))

deps-bump-nixos:
	$(NIX_LOCK) $(foreach dep,$(DEPS_NIXOS),--update-input $(dep))

deps-bump-misc:
	$(NIX_LOCK) $(foreach dep,$(DEPS_MISC),--update-input $(dep))