website/Makefile

72 lines
2.0 KiB
Makefile

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
#
# Manage website building
#
# Andrew Stryker <axs@sdf.org>
#
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#
#-----------------------------------------------------------------------------#
#
# Configuration
#
#-----------------------------------------------------------------------------#
DEST ?= axs@sdf.org:html
SITE_URL ?= https://axs.sdf.org
#-----------------------------------------------------------------------------#
#
# Define user interface
#
#-----------------------------------------------------------------------------#
.PHONY: default help publish build
default: build
build: .build_sentinel #>
publish: build #> Publish site
@echo "📰Publishing..."
@# rsync options:
@# verbose: show each operation
@# links: preserve symlinks
@# safe-links: ignore symlinks that point outside of tree
@# times: preserve modification times
@# delete: delete extraneous files, i.e., files on destination
@# chmod: set permsions
@echo "\t 📡 Copying from public to ${DEST}"
@rsync \
--verbose \
--recursive \
--links \
--safe-links \
--times \
--delete \
--cvs-exclude \
--chmod=D755,F644 \
public/ \
${DEST}
@echo "\t 🛡️ Setting permissions"
@ssh axs@sdf.org 'mkhomepg -p'
@echo "✓ Publising complete"
@echo "\nThe site should be available on ${SITE_URL}"
#-----------------------------------------------------------------------------#
#
# Define file interface
#
#-----------------------------------------------------------------------------#
.build_sentinel: $(wildcard content/*/*)
@echo "\t 🏗️ Building site"
@# We call hugo with two options:
@# --cleanDestinationDir, to remove deleted files
@# --minify, to compress files my removing extra whitespace
hugo --cleanDestinationDir --minify
@touch $@
@echo "✓ Building complete"
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#