111 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
all: build-server
 | 
						|
 | 
						|
# For requests where authentication is required.
 | 
						|
LOGIN ?=
 | 
						|
ifeq ($(LOGIN),)
 | 
						|
LOGIN_OPT =
 | 
						|
else
 | 
						|
LOGIN_OPT = -l $(LOGIN)
 | 
						|
endif
 | 
						|
 | 
						|
# No idea why, but I need that to run applications. Ignore that.
 | 
						|
#LD_P ?= LD_PRELOAD=/usr/local/lib/libipc.so.0
 | 
						|
 | 
						|
OPTS ?= --progress
 | 
						|
 | 
						|
Q ?= @
 | 
						|
 | 
						|
SHOULD_UPDATE = ./bin/should-update
 | 
						|
 | 
						|
####################
 | 
						|
### REQUEST EXAMPLES
 | 
						|
####################
 | 
						|
 | 
						|
DOMAIN ?= example.com
 | 
						|
build-write-zone-file: tools/write-zone-file.cr
 | 
						|
	$(Q)-([ ! -f bin/write-zone-file ] || [ tools/write-zone-file.cr -nt bin/write-zone-file ]) && shards build write-zone-file $(OPTS)
 | 
						|
zone-file: build-write-zone-file
 | 
						|
	$(Q)./bin/write-zone-file $(DOMAIN)
 | 
						|
 | 
						|
build-write-template-zone-file: tools/write-template-zone-file.cr
 | 
						|
	$(Q)-([ ! -f bin/write-template-zone-file ] || [ tools/write-template-zone-file.cr -nt bin/write-template-zone-file ]) && shards build write-template-zone-file $(OPTS)
 | 
						|
zone-basic-template-file: build-write-template-zone-file
 | 
						|
	$(Q)./bin/write-template-zone-file $(DOMAIN)
 | 
						|
 | 
						|
VERBOSITY ?= 4
 | 
						|
run-client-verbosity:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client admin maintenance verbosity $(VERBOSITY) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-domain-add:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user domain add $(DOMAIN) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-domain-del:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user domain del $(DOMAIN) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-domain-list:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user domain list $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-zone-add:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user zone add $(DOMAIN).json $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-zone-get:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user zone get $(DOMAIN) $(LOGIN_OPT)
 | 
						|
 | 
						|
RRID ?= 1
 | 
						|
NAME ?=
 | 
						|
TTL ?= 3600
 | 
						|
TARGET ?=
 | 
						|
run-client-rr-add-a:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user rr add A $(DOMAIN) $(NAME) $(TTL) $(TARGET) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-rr-update-a:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user rr update A $(DOMAIN) $(RRID) $(NAME) $(TTL) $(TARGET) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-client-rr-del:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client user rr del $(DOMAIN) $(RRID) $(LOGIN_OPT)
 | 
						|
 | 
						|
run-admin-generate-all-zonefiles:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanager-client admin genall $(LOGIN_OPT)
 | 
						|
 | 
						|
##################
 | 
						|
### SETUP COMMANDS
 | 
						|
##################
 | 
						|
 | 
						|
DBDIR=/tmp/DATA-dnsmanagerd
 | 
						|
run-dnsmanagerd:
 | 
						|
	$(Q)$(LD_P) ./bin/dnsmanagerd -v $(VERBOSITY) -r $(DBDIR)
 | 
						|
 | 
						|
PORT ?= 8082
 | 
						|
ADDR ?=
 | 
						|
run-token-handler:
 | 
						|
	$(Q)$(LD_P) ./bin/token-handler $(PORT) $(ADDR)
 | 
						|
 | 
						|
build-server:
 | 
						|
	$(Q)-$(SHOULD_UPDATE) bin/dnsmanagerd && shards build dnsmanagerd $(OPTS)
 | 
						|
 | 
						|
build-client:
 | 
						|
	$(Q)-$(SHOULD_UPDATE) bin/dnsmanager-client && shards build dnsmanager-client $(OPTS)
 | 
						|
 | 
						|
build-token-handler:
 | 
						|
	$(Q)shards build token-handler $(OPTS)
 | 
						|
 | 
						|
build: build-server build-client build-token-handler
 | 
						|
 | 
						|
print-messages:
 | 
						|
	cat src/requests/*.cr | ./bin/get-messages.awk
 | 
						|
print-message-numbers:
 | 
						|
	make -s print-messages | grep -E "^[0-9]" | sort -n
 | 
						|
print-messages-without-comments:
 | 
						|
	make -s print-messages | grep -vE '^[[:blank:]]+#'
 | 
						|
print-response-messages:
 | 
						|
	cat src/responses/*.cr | ./bin/get-messages.awk
 | 
						|
print-response-message-numbers:
 | 
						|
	make -s print-response-messages | grep -E "^[0-9]" | sort -n
 | 
						|
print-response-messages-without-comments:
 | 
						|
	make -s print-response-messages | grep -vE '^[[:blank:]]+#'
 | 
						|
 | 
						|
wipe-db:
 | 
						|
	rm -r $(DBDIR)
 | 
						|
 | 
						|
release:
 | 
						|
	make build-server OPTS="--release --progress --no-debug"
 |