48 lines
1.1 KiB
Makefile
48 lines
1.1 KiB
Makefile
BUILD_DIR ?= build
|
|
EXPORT_DIR ?= public
|
|
BUILD_STAMP_HUGO = $(BUILD_DIR)/.stamp-hugo
|
|
BUILD_STAMP_THEME = $(BUILD_DIR)/.stamp-theme
|
|
SOURCE_DIRS = content data resources static
|
|
THEME_DIR ?= themes/hugo-geekdoc
|
|
BUILD_DEPS = config.toml $(shell find $(wildcard $(SOURCE_DIRS)) -type f)
|
|
HUGO_OPTS ?= --destination=$(EXPORT_DIR)
|
|
|
|
UPLOAD_SSH_HOST = hosting.sao
|
|
UPLOAD_TARGET_DIRECTORY = /data/webserver/hilfe.systemausfall.org/public
|
|
|
|
|
|
.PHONY: help
|
|
help:
|
|
@echo "Mögliche Ziele:"
|
|
@echo " build - Webseite erzeugen"
|
|
@echo " build-theme - Theme-Assets erzeugen"
|
|
@echo " upload - erzeugte Webseite hochladen"
|
|
@echo
|
|
|
|
.PHONY: build
|
|
build: $(BUILD_STAMP_HUGO)
|
|
|
|
$(BUILD_STAMP_HUGO): $(BUILD_DEPS) $(BUILD_STAMP_THEME) Makefile
|
|
@mkdir -p "$(dir $@)"
|
|
@HUGO_ENV=production hugo $(HUGO_OPTS)
|
|
@touch "$@"
|
|
|
|
.PHONY: build-theme
|
|
build-theme: $(BUILD_STAMP_THEME)
|
|
|
|
$(BUILD_STAMP_THEME):
|
|
@mkdir -p "$(dir $@)"
|
|
cd "$(THEME_DIR)" \
|
|
&& npm install \
|
|
&& npm run build
|
|
touch "$@"
|
|
|
|
.PHONY: upload
|
|
upload: $(BUILD_STAMP_HUGO)
|
|
@rsync -ax --delete \
|
|
"$(EXPORT_DIR)/" \
|
|
"$(UPLOAD_SSH_HOST):$(UPLOAD_TARGET_DIRECTORY)/"
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(RM) -r "$(BUILD_DIR)"
|