summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2018-03-22 23:57:18 +0100
committerJonas Bernoulli <jonas@bernoul.li>2018-03-22 23:57:18 +0100
commitff3e96929d4532e33422a5980a6e3ca9f2fcf032 (patch)
tree7ff10d14586476a2dd41f965249b0f5bee9c9055 /Makefile
parent22a581d4b32d8eb3d9647c13bc30900cde3ae191 (diff)
make: Refactor manual publishing
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile45
1 files changed, 27 insertions, 18 deletions
diff --git a/Makefile b/Makefile
index dd4b8be..b4803b3 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,8 @@ ELCS = $(ELS:.el=.elc)
DEPS = dash
+VERSION ?= $(shell test -e $(TOP).git && git describe --tags --abbrev=0 | cut -c2-)
+
EMACS ?= emacs
EMACS_ARGS ?=
EMACS_ARGS += --eval '(setq with-editor-emacsclient-executable nil)'
@@ -38,10 +40,10 @@ help:
$(info make html-dir - generate html manual directory)
$(info make pdf - generate pdf manual)
$(info make authors - generate AUTHORS.md)
- $(info make preview - preview html manual)
- $(info make publish - publish html manual)
+ $(info make publish - publish snapshot manuals)
+ $(info make release - publish release manuals)
$(info make clean - remove most generated files)
- @printf "\n"
+ @printf "$(VERSION)\n"
lisp: $(ELCS) loaddefs
@@ -108,28 +110,35 @@ html-dir: $(PKG).texi
@texi2pdf --clean $< > /dev/null
DOMAIN ?= magit.vc
-CFRONT_DIST ?= E2LUHBKU1FBV02
PUBLISH_PATH ?= /manual/
-PUBLISH_BUCKET ?= s3://$(DOMAIN)
-PREVIEW_BUCKET ?= s3://preview.$(DOMAIN)
-PUBLISH_TARGET ?= $(PUBLISH_BUCKET)$(PUBLISH_PATH)
-PREVIEW_TARGET ?= $(PREVIEW_BUCKET)$(PUBLISH_PATH)
+RELEASE_PATH ?= /manual/$(VERSION)/
-preview: html html-dir pdf
- @aws s3 cp $(PKG).html $(PREVIEW_TARGET)
- @aws s3 cp $(PKG).pdf $(PREVIEW_TARGET)
- @aws s3 sync --delete $(PKG) $(PREVIEW_TARGET)$(PKG)/
+S3_BUCKET ?= s3://$(DOMAIN)
+PUBLISH_TARGET = $(S3_BUCKET)$(PUBLISH_PATH)
+RELEASE_TARGET = $(S3_BUCKET)$(RELEASE_PATH)
+
+CFRONT_DIST ?= E2LUHBKU1FBV02
+CFRONT_PATHS = $(PKG).html $(PKG).pdf $(PKG)/*
+
+comma := ,
+empty :=
+space := $(empty) $(empty)
publish: html html-dir pdf
@aws s3 cp $(PKG).html $(PUBLISH_TARGET)
- @aws s3 cp $(PKG).pdf $(PUBLISH_TARGET)
+ @aws s3 cp $(PKG).pdf $(PUBLISH_TARGET)
@aws s3 sync --delete $(PKG) $(PUBLISH_TARGET)$(PKG)/
@printf "Generating CDN invalidation\n"
- @aws cloudfront create-invalidation \
- --distribution-id $(CFRONT_DIST) --paths "\
-/manual/$(PKG).html,\
-/manual/$(PKG).pdf,\
-/manual/$(PKG)/*" > /dev/null
+ @aws cloudfront create-invalidation --distribution-id $(CFRONT_DIST) --paths \
+ "$(subst $(space),$(comma),$(addprefix $(PUBLISH_PATH),$(CFRONT_PATHS)))" > /dev/null
+
+release: html html-dir pdf
+ @aws s3 cp $(PKG).html $(RELEASE_TARGET)
+ @aws s3 cp $(PKG).pdf $(RELEASE_TARGET)
+ @aws s3 sync --delete $(PKG) $(RELEASE_TARGET)$(PKG)/
+ @printf "Generating CDN invalidation\n"
+ @aws cloudfront create-invalidation --distribution-id $(CFRONT_DIST) --paths \
+ "$(subst $(space),$(comma),$(addprefix $(RELEASE_PATH),$(CFRONT_PATHS)))" > /dev/null
CLEAN = $(ELCS) $(PKG)-autoloads.el $(PKG).info dir
CLEAN += $(PKG) $(PKG).html $(PKG).pdf