system-manager-wakasu
  1# Makefile for home
  2HOSTS          = $(shell nix flake show --json --all-systems 2>/dev/null | yq '.nixosConfigurations.[] | key')
  3HOSTS_BUILD    = $(addprefix host/, $(addsuffix /build,$(HOSTS)))
  4
  5.PHONY: all
  6all: dry-build
  7
  8# Host operations
  9.PHONY: hosts
 10hosts: ${HOSTS_BUILD}
 11	echo ${HOSTS_BUILD} ${HOSTS}
 12
 13host/%/build: FORCE
 14	nix build .#nixosConfigurations.$*.config.system.build.toplevel --no-link
 15
 16host/%/boot: FORCE
 17	nixos-rebuild --target-host root@$*.sbr.pm --flake .#$* boot
 18
 19host/%/switch: FORCE
 20	nixos-rebuild --target-host root@$*.sbr.pm --flake .#$* switch
 21
 22# Host-specific overrides (non-standard DNS/network)
 23.PHONY: host/nagoya/boot
 24host/nagoya/boot:
 25	nixos-rebuild --target-host root@192.168.1.80 --flake .#nagoya boot
 26
 27.PHONY: host/kobe/boot
 28host/kobe/boot:
 29	nixos-rebuild --target-host root@192.168.1.77 --flake .#kobe boot
 30
 31.PHONY: host/aix/boot
 32host/aix/boot:
 33	nixos-rebuild --target-host root@10.100.0.89 --flake .#aix boot
 34
 35.PHONY: host/kerkouane/boot
 36host/kerkouane/boot:
 37	nixos-rebuild --target-host root@kerkouane.vpn --flake .#kerkouane boot
 38
 39.PHONY: host/kerkouane/switch
 40host/kerkouane/switch:
 41	nixos-rebuild --target-host root@kerkouane.vpn --flake .#kerkouane switch
 42
 43# Local system operations
 44.PHONY: boot
 45boot:
 46	sudo nixos-rebuild --flake .# boot
 47
 48.PHONY: switch
 49switch:
 50	sudo nixos-rebuild --flake .# switch
 51
 52.PHONY: dry-build
 53dry-build:
 54	nixos-rebuild --flake .# dry-build
 55
 56.PHONY: build
 57build:
 58	nixos-rebuild --flake .# build
 59
 60# Development
 61.PHONY: pre-commit
 62pre-commit: fmt
 63
 64.PHONY: fmt
 65fmt:
 66	nixfmt-plus
 67
 68# Dotfiles
 69.PHONY: dots
 70dots:
 71	@$(MAKE) -C dots
 72
 73# Keyboards
 74.PHONY: keyboards keyboards/moonlander/build keyboards/moonlander/flash keyboards/moonlander/update keyboards/moonlander/clean
 75.PHONY: keyboards/eyelash_corne/build keyboards/eyelash_corne/flash
 76.PHONY: keyboards/draw keyboards/moonlander/draw keyboards/eyelash_corne/draw
 77
 78keyboards/moonlander/build:
 79	@$(MAKE) -C keyboards moonlander/build
 80
 81keyboards/moonlander/flash:
 82	@$(MAKE) -C keyboards moonlander/flash
 83
 84keyboards/moonlander/update:
 85	@$(MAKE) -C keyboards moonlander/update
 86
 87keyboards/moonlander/clean:
 88	@$(MAKE) -C keyboards moonlander/clean
 89
 90keyboards/eyelash_corne/build:
 91	@$(MAKE) -C keyboards eyelash_corne/build
 92
 93keyboards/eyelash_corne/flash:
 94	@$(MAKE) -C keyboards eyelash_corne/flash
 95
 96keyboards/draw:
 97	@$(MAKE) -C keyboards draw
 98
 99keyboards/moonlander/draw:
100	@$(MAKE) -C keyboards moonlander/draw
101
102keyboards/eyelash_corne/draw:
103	@$(MAKE) -C keyboards eyelash_corne/draw
104
105keyboards:
106	@$(MAKE) -C keyboards help
107
108# DNS
109.PHONY: dns-show
110dns-show:
111	@bash tools/show-dns.sh
112
113.PHONY: dns-update-gandi
114dns-update-gandi:
115	@bash tools/update-gandi-dns.sh
116
117.PHONY: dns-update-gandi-dry-run
118dns-update-gandi-dry-run:
119	@bash tools/update-gandi-dns.sh --dry-run
120
121# Media Management (*arr Stack)
122# Default values (can be overridden via environment or make arguments)
123LIDARR_URL ?= https://lidarr.sbr.pm
124LIDARR_API_KEY ?= $(shell passage show home/services/lidarr)
125SONARR_URL ?= https://sonarr.sbr.pm
126SONARR_API_KEY ?= $(shell passage show home/services/sonarr)
127RADARR_URL ?= https://radarr.sbr.pm
128RADARR_API_KEY ?= $(shell passage show home/services/radarr)
129EXTRA_ARGS ?=
130
131.PHONY: lidarr-rename lidarr-retag lidarr-update-paths
132.PHONY: sonarr-rename
133.PHONY: radarr-rename
134
135# Lidarr
136lidarr-rename:
137	@tools/lidarr-rename-albums.py $(LIDARR_URL) $(LIDARR_API_KEY) $(EXTRA_ARGS)
138
139lidarr-retag:
140	@tools/lidarr-retag-albums.py $(LIDARR_URL) $(LIDARR_API_KEY) $(EXTRA_ARGS)
141
142lidarr-update-paths:
143	@tools/lidarr-update-paths.py $(LIDARR_URL) $(LIDARR_API_KEY) $(LIDARR_ROOT_PATH) $(EXTRA_ARGS)
144
145# Sonarr
146sonarr-rename:
147	@tools/sonarr-rename-series.py $(SONARR_URL) $(SONARR_API_KEY) $(EXTRA_ARGS)
148
149# Radarr
150radarr-rename:
151	@tools/radarr-rename-movies.py $(RADARR_URL) $(RADARR_API_KEY) $(EXTRA_ARGS)
152
153# Maintenance
154.PHONY: clean
155clean: clean-system clean-results
156
157.PHONY: clean-system
158clean-system:
159	sudo nix-env --profile /nix/var/nix/profiles/system --delete-generations 15d
160
161.PHONY: clean-results
162clean-results:
163	rm -f result result-*
164
165# Update flake inputs
166.PHONY: update
167update:
168	nix flake update
169
170FORCE: