all: build-server # For requests where authentication is required. LOGIN ?= ifeq ($(LOGIN),) LOGIN_OPT = else LOGIN_OPT = -l $(LOGIN) endif OPTS ?= --progress Q ?= @ SOURCE_FILES = $(wildcard src/*.cr src/*/*.cr src/*/*/*.cr) #################### ### REQUEST EXAMPLES #################### DOMAIN ?= example.com bin/write-zone-file: tools/write-zone-file.cr $(Q)-shards build write-zone-file $(OPTS) build-write-zone-file: bin/write-zone-file zone-file: build-write-zone-file $(Q)./bin/write-zone-file $(DOMAIN) bin/write-template-zone-file: tools/write-template-zone-file.cr $(Q)-shards build write-template-zone-file $(OPTS) build-write-template-zone-file: bin/write-template-zone-file zone-basic-template-file: build-write-template-zone-file $(Q)./bin/write-template-zone-file $(DOMAIN) bin/powerdns-sync: tools/powerdns-sync.cr $(Q)-shards build powerdns-sync $(OPTS) build-powerdns-sync: bin/powerdns-sync VERBOSITY ?= 4 run-client-verbosity:; $(Q)./bin/dnsmanager-client admin maintenance verbosity $(VERBOSITY) $(LOGIN_OPT) run-client-domain-add:; $(Q)./bin/dnsmanager-client user domain add $(DOMAIN) $(LOGIN_OPT) run-client-domain-del:; $(Q)./bin/dnsmanager-client user domain del $(DOMAIN) $(LOGIN_OPT) run-client-domain-list:; $(Q)./bin/dnsmanager-client user domain list $(LOGIN_OPT) run-client-zone-add:; $(Q)./bin/dnsmanager-client user zone add $(DOMAIN).json $(LOGIN_OPT) run-client-zone-get:; $(Q)./bin/dnsmanager-client user zone get $(DOMAIN) $(LOGIN_OPT) RRID ?= 1 NAME ?= TTL ?= 3600 TARGET ?= run-client-rr-add-a:; $(Q)./bin/dnsmanager-client user rr add A $(DOMAIN) $(NAME) $(TTL) $(TARGET) $(LOGIN_OPT) run-client-rr-update-a:; $(Q)./bin/dnsmanager-client user rr update A $(DOMAIN) $(RRID) $(NAME) $(TTL) $(TARGET) $(LOGIN_OPT) run-client-rr-del:; $(Q)./bin/dnsmanager-client user rr del $(DOMAIN) $(RRID) $(LOGIN_OPT) run-client-genzones:; $(Q)./bin/dnsmanager-client admin genall $(LOGIN_OPT) ################## ### SETUP COMMANDS ################## DBDIR=/tmp/DATA-dnsmanagerd bin/dnsmanagerd: $(SOURCE_FILES); $(Q)shards build dnsmanagerd $(OPTS) build-server: bin/dnsmanagerd run-dnsmanagerd:; $(Q)./bin/dnsmanagerd -v $(VERBOSITY) -r $(DBDIR) bin/dnsmanager-client: $(SOURCE_FILES); $(Q)shards build dnsmanager-client $(OPTS) build-client: bin/dnsmanager-client PORT ?= 8082 ADDR ?= bin/token-handler: tools/token-handler.cr; $(Q)shards build token-handler $(OPTS) build-token-handler: bin/token-handler run-token-handler: bin/token-handler; $(Q)./bin/token-handler $(PORT) $(ADDR) build: build-server build-client build-token-handler build-powerdns-sync 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-no-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-no-comments:; make -s print-response-messages | grep -vE '^[[:blank:]]+#' doc: crystal docs src/main.cr src/client.cr lib/authd/src/client.cr HTTPD_ACCESS_LOGS ?= /tmp/access-dnsmanager-docs.log HTTPD_ADDR ?= 127.0.0.1 HTTPD_PORT ?= 9001 DIR ?= docs serve-doc: darkhttpd $(DIR) --addr $(HTTPD_ADDR) --port $(HTTPD_PORT) --log $(HTTPD_ACCESS_LOGS) wipe-db: rm -r $(DBDIR) release: make build-server OPTS="--release --progress --no-debug" -include migration.mk