build: clobber .bin/client/public .bin/gopherhole

dev: clean .bin/gopherhole .bin/config.json
	cd .bin && ./gopherhole -config config.json

clean:
	@rm -rf .bin/gopherhole .bin/config.json .bin/client

clobber: clean
	@rm -rf .bin ./client/node_modules ./client/public/build

vdhsn/gopherhole:
	docker build -t vdhsn/gopherhole:latest .

test:
	dig -p 5353 twitter.com @localhost
	dig -p 5353 google.com @localhost
	dig -p 5353 loki.veldhousen.ninja @localhost
	dig -p 5353 www.liveauctioneers.com @localhost


.PHONY: build clean clobber client-dev dev test vdhsn/gopherhole

.bin:
	mkdir -p .bin

.bin/gopherhole: .bin
	# @go build --tags "sqlite_foreign_keys fts5" -v -o .bin/gopherhole .
	@go build --tags "fts5" -v -o .bin/gopherhole .

.bin/config.json:
	@cp ./config.example.json .bin/config.json

client-dev: client/node_modules
	cd ./client && npm run dev

.bin/client/public: .bin client/public/build
	mkdir -p .bin/client/public
	cp -R ./client/public/ .bin/client/

client/public/build: client/node_modules
	cd ./client && npm run build

client/node_modules:
	cd ./client && npm install
