diff options
author | Egor Tensin <egor@tensin.name> | 2023-12-13 23:07:44 +0100 |
---|---|---|
committer | Egor Tensin <egor@tensin.name> | 2023-12-13 23:07:44 +0100 |
commit | 496093b762260a6a76ab4e2bc952fb49374dc065 (patch) | |
tree | c0c7dd9af737701ab57b96d1dfa954348e584f45 | |
parent | add the usual Jekyll infrastructure (diff) | |
download | fucktipp.ing-496093b762260a6a76ab4e2bc952fb49374dc065.tar.gz fucktipp.ing-496093b762260a6a76ab4e2bc952fb49374dc065.zip |
add a Makefile with the usual shortcuts
-rw-r--r-- | Makefile | 49 | ||||
-rw-r--r-- | prelude.mk | 23 |
2 files changed, 72 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3e49ea6 --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +include prelude.mk + +LIVE_RELOAD ?= 1 +$(eval $(call noexpand,LIVE_RELOAD)) + +.PHONY: all +all: serve + +.PHONY: ruby +ruby: + if command -v rbenv &> /dev/null; then rbenv install --skip-existing; fi + +.PHONY: deps +deps: ruby + bundle install + +jekyll := bundle exec jekyll + +.PHONY: build +build: + $(jekyll) build + +.PHONY: serve +serve: +ifeq ($(LIVE_RELOAD),1) + $(jekyll) serve --livereload +else + $(jekyll) serve +endif + +URL := http://localhost:4000/ + +.PHONY: view +view: + xdg-open '$(call escape,$(URL))' &> /dev/null + +REMOTE_USER ?= who +REMOTE_HOST ?= where +REMOTE_PORT ?= 22 +REMOTE_DIR ?= /path/to/dir + +$(eval $(call noexpand,REMOTE_USER)) +$(eval $(call noexpand,REMOTE_HOST)) +$(eval $(call noexpand,REMOTE_PORT)) +$(eval $(call noexpand,REMOTE_DIR)) + +.PHONY: deploy +deploy: + rsync -avh -e 'ssh -p $(call escape,$(REMOTE_PORT)) -o StrictHostKeyChecking=no' _site/ '$(call escape,$(REMOTE_USER)@$(REMOTE_HOST):$(REMOTE_DIR)/)' --delete diff --git a/prelude.mk b/prelude.mk new file mode 100644 index 0000000..da836d7 --- /dev/null +++ b/prelude.mk @@ -0,0 +1,23 @@ +# Please see https://tensin.name/blog/notes/makefile.html + +MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables +unexport MAKEFLAGS +.DEFAULT_GOAL := all +.DELETE_ON_ERROR: +.SUFFIXES: +SHELL := bash +.SHELLFLAGS := -eu -o pipefail -c + +escape = $(subst ','\'',$(1)) + +define noexpand +ifeq ($$(origin $(1)),environment) + $(1) := $$(value $(1)) +endif +ifeq ($$(origin $(1)),environment override) + $(1) := $$(value $(1)) +endif +ifeq ($$(origin $(1)),command line) + override $(1) := $$(value $(1)) +endif +endef |