system/Makefile

78 lines
1.7 KiB
Makefile

NIX_RUN := nix run .\#
NIX_LOCK := nix flake lock
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 $(NIX_ARGS) .#switch/$(1) -- $(BUILD_ARGS)
endef
define vps_rule
.PHONY: $(1)
$(1): ; nix run .#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 --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: init-neovim
init-neovim:
nix profile install .#neovim-dev
################################################################################
# Deps
################################################################################
.PHONY: deps-my
deps-editor:
$(NIX_LOCK) $(foreach dep,$(DEPS_EDITOR),--update-input $(dep))
.PHONY: deps-nixos
deps-system:
$(NIX_LOCK) $(foreach dep,$(DEPS_SYSTEM),--update-input $(dep))
.PHONY: deps
deps: deps-editor deps-system ;