all: bundle-mini

clone-generic-parser:
	[ ! -d ../parser ] && cd .. && git clone ssh://_gitea@git.baguette.netlib.re:2299/Baguette/parser.git || :

build: clone-generic-parser
	spago build

bundle-mini: install-esbuild
	PATH=$$PATH:node_modules/.bin spago bundle-app -y
	mv index.js app/

bundle: install-esbuild
	PATH=$$PATH:node_modules/.bin spago bundle-app
	mv index.js app/

repl:
	spago repl

spagobuild:
	spago build

docs-with-search:
	spago docs

docs:
	spago docs --no-search

DOCS_HTTPD_ACCESS_LOGS ?= /tmp/docs-access.log
DOCS_HTTPD_ADDR        ?= 127.0.0.1
DOCS_HTTPD_PORT        ?= 31000
DOCS_DIR               ?= generated-docs/html
serve-docs: docs
	darkhttpd $(DOCS_DIR) --addr $(DOCS_HTTPD_ADDR) --port $(DOCS_HTTPD_PORT) --log $(DOCS_HTTPD_ACCESS_LOGS)

install-esbuild:
	@[ -f node_modules/.bin/esbuild ] || echo "install ebbuild"
	[ -f node_modules/.bin/esbuild ] || npm install esbuild

HTTPD_ACCESS_LOGS ?= /tmp/access.log
HTTPD_ADDR        ?= 127.0.0.1
HTTPD_PORT        ?= 35000
DIR               ?= app
serve:
	darkhttpd $(DIR) --addr $(HTTPD_ADDR) --port $(HTTPD_PORT) --log $(HTTPD_ACCESS_LOGS)

# NPM can serve it, but it's slow for nothing.
#serve:
#	npm run serve

# You can add your specific instructions there.
-include user.mk