npmbin := ./node_modules/.bin PORT ?= 3000 HOST ?= 127.0.0.1 help: @echo @echo Makefile targets @grep -E '^[a-zA-Z_-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @echo # Builds intermediate files. Needs a _site built first though update: _site critical # Builds _site _site: bundle exec jekyll build --incremental critical: _site ## Builds critical path CSS/JS node _support/critical.js # Ensure that bins are available. ensure-bin: @if [ ! -d $(npmbin) ]; then \ echo "---"; \ echo "Error: $(npmbin) not found, you may need to run '[docker-compose run --rm web] yarn install'."; \ echo "---"; \ exit 1; \ fi @if ! which jekyll &>/dev/null; then \ echo "---"; \ echo "Warning: Jekyll not found, you may need to run '[docker-compose run --rm web] bundle install'."; \ echo "---"; \ fi dev: ensure-bin ## Starts development server $(npmbin)/concurrently -k -p command -c "blue,green" \ "make dev-webpack" \ "make dev-jekyll" dev-webpack: ensure-bin $(npmbin)/webpack --watch --colors -p dev-jekyll: ensure-bin if [ -f _site ]; then \ bundle exec jekyll serve --safe --trace --drafts --watch --incremental --host $(HOST) --port $(PORT); \ else \ bundle exec jekyll serve --safe --trace --drafts --watch --host $(HOST) --port $(PORT); \ fi test: _site ## Runs rudimentary tests @test -f _site/vim.html @test -f _site/react.html @test -f _site/index.html @grep "