78 lines
1.7 KiB
Makefile
78 lines
1.7 KiB
Makefile
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 ;
|
|
|