diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a833820 --- /dev/null +++ b/Makefile @@ -0,0 +1,73 @@ +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 + +.PHONY: maintenance +maintenance: ruby + bundle config set frozen false + bundle update + + @git_status="$$( git status --porcelain=v1 )" && \ + if [ -z "$$git_status" ]; then \ + true; \ + elif [ "$$git_status" = ' M Gemfile.lock' ]; then \ + git commit -am 'bump dependencies' && \ + git push -q; \ + else \ + echo; \ + echo '-----------------------------------------------------------------'; \ + echo 'Error: unrecognized modifications in the repository:'; \ + echo "$$git_status"; \ + echo '-----------------------------------------------------------------'; \ + exit 1; \ + fi + +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/blog/ + +.PHONY: wget +wget: + wget --no-verbose --recursive --no-parent --convert-links --adjust-extension -e robots=off --directory-prefix=.wget -- '$(call escape,$(URL))' + +.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 |