nftable-migration
 1makefile := $(abspath $(lastword $(MAKEFILE_LIST)))
 2dotfiles := $(abspath $(dir $(makefile)))
 3
 4~ := $(abspath $(dotfiles))
 5
 6force:
 7
 8define rule.template
 9$(1)/% : $(2)/% force
10	@echo "📋 Linking $$< → $$@"
11	@mkdir -p $$(@D)
12	@ln -snf $$< $$@
13endef
14
15rule.define = $(eval $(call rule.template,$(1),$(2)))
16
17$(call rule.define,~,$(~))
18
19all += niri
20niri : ~/.config/niri/config.kdl
21
22# Example: Override default rule to generate content instead of copying
23# Uncomment and customize this pattern for files that should be generated:
24#
25# ~/.config/example/generated.conf : force
26# 	@echo "⚙️  Generating $$@"
27# 	@mkdir -p $(@D)
28# 	@echo "# Generated on $$(date)" > $@
29# 	@echo "setting1=value1" >> $@
30# 	@echo "setting2=value2" >> $@
31
32all : $(all)
33	@echo "✅ All dotfiles installed!"
34
35.PHONY: all $(all)
36.DEFAULT_GOAL := all
37