all: build
build:
	shards build

NAME ?= John
EMAIL ?= john@example.com

PASSWORD_FILE  ?= /tmp/PASSWORD
DATA_DIRECTORY ?= /tmp/DATA-AUTHD

setup:
	@[ -f $(PASSWORD_FILE) ] || echo -n "coucou" > $(PASSWORD_FILE)

run-authd: setup
	./bin/authd -k /tmp/PASSWORD -R -E --storage $(DATA_DIRECTORY)

doc:
	crystal docs


HTTPD_ACCESS_LOGS ?= /tmp/access-authd-docs.log
HTTPD_ADDR        ?= 127.0.0.1
HTTPD_PORT        ?= 9000
DIR               ?= docs
serve-doc:
	darkhttpd $(DIR) --addr $(HTTPD_ADDR) --port $(HTTPD_PORT) --log $(HTTPD_ACCESS_LOGS)

# First user always is the admin.
add-first-user:
	./bin/authc bootstrap $(NAME) $(EMAIL)

add-user:
	./bin/authc user add $(NAME) $(EMAIL)

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:]]+#'