# Hugo configuration.
HUGO_COMMAND := hugo
HUGO_OPTIONS := --i18n-warnings

OUTPUT_DIR := public

# Vnu validator configuration.
VNU_COMMAND := vnu
VNU_OPTIONS := --skip-non-html --also-check-css

# Rsync deployment configuration.
SSH_HOST := www.cosin.ch
SSH_USER := root
TARGET_DIR := /srv/www/www.cosin.ch/

# Non-file goals.
.PHONY: server generate validate upload clean

# Include the configuration files.
-include config.mk settings.mk

# Start a local development server.
server:
	hugo $(HUGO_OPTIONS) server

# Generate static output files for deployment.
generate:
	hugo $(HUGO_OPTIONS)

# Validate html and css in generated files.
validate: generate
	$(VNU_COMMAND) $(VNU_OPTIONS) $(OUTPUT_DIR)

# Deploy the website to the production webserver.
upload: generate
	rsync --rsh=ssh -P -rvzc --cvs-exclude --delete --include=*/fahrplan/ --exclude=fahrplan/ $(OUTPUT_DIR)/ $(SSH_USER)@$(SSH_HOST):$(TARGET_DIR)

# Clean up.
clean:
	rm -rf $(OUTPUT_DIR)