all: build

clean:
	@mkdir -p output
	@rm -rf output/*

build_fonts: clean
	@scripts/build_fonts.sh

build_sass: clean
	@scripts/build_sass.sh

build_content: clean
	@scripts/build_content.sh

build_only: build_fonts build_sass build_content

compress_gz: build_only
	@echo -e "\033[0;32m[COMPRESS]\033[0m Gzip"
	@pigz -R -k -9 -- `find output -type f -iregex '.*\\.\\(css\\|js\\|json\\|html\\|xml\\|txt\\|svg\\|ico\\)'`

compress_br: build_only
	@echo -e "\033[0;32m[COMPRESS]\033[0m Brotli"
	@brotli -k -- `find output -type f -iregex '.*\\.\\(css\\|js\\|json\\|html\\|xml\\|txt\\|svg\\|ico\\|woff\\)'`

build: compress_gz compress_br

watch_sass: build_only
	@scripts/watch_sass.sh

watch_content: build_only
	@scripts/watch_content.sh

watch_templates: build_only
	@scripts/watch_templates.sh

watch_metadata: build_only
	@scripts/watch_metadata.sh

watch_filters: build_only
	@scripts/watch_filters.sh

watch: watch_sass watch_content watch_templates watch_metadata watch_filters

serve_only: build_only
	@python -m http.server --bind 127.0.0.1 --directory output

serve: watch serve_only

deploy: build
	@scripts/deploy.sh

.PHONY: all clean build watch serve deploy