#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# # #> Manage building Hugo website #> #> Andrew Stryker #> #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# #-----------------------------------------------------------------------------# # # Configuration # #-----------------------------------------------------------------------------# SHELL = /usr/bin/bash DEST ?= axs@sdf.org:html SITE_URL ?= https://axs.sdf.org HUGO_SERVE_FLAGS ?= --buildDrafts hugo_serve_cmd = hugo server ${HUGO_SERVE_FLAGS} help_generator = generate-help.awk #-----------------------------------------------------------------------------# # # Define user interface # #-----------------------------------------------------------------------------# .PHONY: default help publish build default: build build: .build_sentinel #> Build site with Hugo (default) 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}" serve: #> Start a Hugo server @if [[ -z $${TMUX} ]]; \ then \ echo not tmux; \ else \ echo Starting a Hugo server in a new Tmux window; \ tmux neww ${hugo_serve_cmd}; \ fi help: #> Generate this help message @gawk -f ${help_generator} $(MAKEFILE_LIST) #-----------------------------------------------------------------------------# # # 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" #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-#