SRC = ./
NFT = nftables.conf

all:
	$(info run make makeconf to unify .nft files into nftables.conf)
	$(info run make install to install nftables.conf in /etc and set as current ruleset)
	$(info run make uninstall to replace /etc/nftables.conf with backup and set as current ruleset)

makeconf:
	$(info running makeconf.sh)
	$(SRC)makeconf.sh

test: makeconf
	$(info checking configuration for errors and possible optimizations)
	nft -c -o -f $(SRC)$(NFT)

backup:
	$(info backing up current nftables rules)
	cp /etc/nftables.conf $(SRC)backup.conf || nft list ruleset > $(SRC)backup.conf

install: test backup
	$(info installing new nftables rules)
	cp $(SRC)$(NFT) /etc/nftables.conf
	$(info reloading nftables rules)
	nft -f /etc/nftables.conf

uninstall:
	$(info replacing nftables.conf with backup)
	cp $(SRC)backup.conf /etc/nftables.conf
	$(info reloading nftables rules)
	nft -f /etc/nftables.conf
