83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| .PHONY: help
 | |
| 
 | |
| help: ## Print the help message
 | |
| 	@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
 | |
| 		sort | \
 | |
| 		column -s ':' -t
 | |
| 
 | |
| .PHONY: check
 | |
| check: ## Check you have all dependencies
 | |
| 	@command -v graph-easy >/dev/null || { echo "Install perl-graph-easy" && exit 1 ;}
 | |
| 	@command -v recsel >/dev/null || { echo "Install recutils" && exit 1 ;}
 | |
| 	@command -v lowdown >/dev/null || { echo "Install lowdown" && exit 1 ;}
 | |
| 	@echo "All dependencies installed"
 | |
| 
 | |
| ########## Network Map ##########
 | |
| 
 | |
| graph_cmd = graph-easy --boxart
 | |
| 
 | |
| queries = queries authqueries
 | |
| 
 | |
| query_formats = $(patsubst %, .dbs/%.txt, $(queries))
 | |
| 
 | |
| .dbs/:
 | |
| 	mkdir $@
 | |
| 
 | |
| $(query_formats): .dbs/%.txt: | .dbs/
 | |
| 	echo "[ {{name}} ] -- $(basename $(@F)) --> [ {{$(basename $(@F))}} ]" > $@
 | |
| 
 | |
| .PHONY: map
 | |
| map: .dbs/network.txt ## Show a network map
 | |
| 	$(graph_cmd) < $<
 | |
| 
 | |
| .dbs/network.txt: network.rec $(query_formats)
 | |
| 	$(RM) .dbs/network.txt
 | |
| 	$(foreach relation, $(queries), \
 | |
| 	recsel $< -t lxc -e "$(relation) != ''" -p name,$(relation) | recfmt -f .dbs/$(relation).txt >> $@ ;\
 | |
| 	)
 | |
| 
 | |
| ########## Man Pages ##########
 | |
| 
 | |
| mandir = $(HOME)/.local/man/man6
 | |
| 
 | |
| kralizec_docs != grep -rl "^section:" kralizec 
 | |
| kralmans = $(kralizec_docs:kralizec/%/README.md=$(mandir)/%.6)
 | |
| 
 | |
| $(mandir)/%.6: kralizec/%/README.md
 | |
| 	lowdown -stman $< > $@
 | |
| 
 | |
| krov_docs != grep -rl "^section:" krov 
 | |
| krovmans = $(krov_docs:krov/%/README.md=$(mandir)/%.6)
 | |
| 
 | |
| $(mandir)/%.6: krov/%/README.md
 | |
| 	lowdown -stman $< > $@
 | |
| 
 | |
| splint_docs != grep -rl "^section:" splintrs
 | |
| splintmans = $(splint_docs:splintrs/%/README.md=$(mandir)/%.6)
 | |
| 
 | |
| $(mandir)/%.6: splintrs/%/README.md
 | |
| 	lowdown -stman $< > $@
 | |
| 
 | |
| setup_docs != grep -rl "^section:" setup 
 | |
| setupmans = $(setup_docs:setup/%.md=$(mandir)/%.6)
 | |
| 
 | |
| $(mandir)/%.6: setup/%.md
 | |
| 	lowdown -stman $< > $@
 | |
| 
 | |
| $(mandir):
 | |
| 	mkdir -p $@
 | |
| 
 | |
| $(kralmans) $(krovmans) $(splintmans) $(setupmans) :| $(mandir)
 | |
| 
 | |
| .PHONY: pages
 | |
| pages: $(kralmans) $(krovmans) $(setupmans) $(splintmans)
 | |
| 	$(info $(kralmans))
 | |
| 	@test ! $(command -v mandb) || mandb --user-db
 | |
| 	$(info Open DMZ's man pages with 'man 6 <tab>')
 | |
| 
 | |
| ##########
 | |
| 
 | |
| clean:
 | |
| 	$(RM) $(kralmans) $(krovmans)
 | |
| 	$(RM) -r .dbs
 |