Mercurial > web-octave
diff Makefile @ 126:d851f4f89fb4
Improve Makefile deployment mechanism.
* Makefile: Introduce checks for required tools and especially the Jekyll
version. Explain the deployment in detail.
* README.md: Remove verbose section about deployment to the Makefile.
Update documentation. Remove advertising section.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Fri, 09 Dec 2016 15:18:41 +0100 |
parents | bfdbe4eb3128 |
children | 839113398e6f |
line wrap: on
line diff
--- a/Makefile Wed Dec 07 15:22:11 2016 -0800 +++ b/Makefile Fri Dec 09 15:18:41 2016 +0100 @@ -8,15 +8,67 @@ export CVS_RSH -all: deploy +CHECK_GEM := $(shell command -v gem 2> /dev/null) +CHECK_JEKYLL := $(shell command -v jekyll 2> /dev/null) +CHECK_JEKYLL_VERSION = $(shell jekyll --version | grep ^jekyll | sed 's/^.* //g') -deploy: | $(SAVANNAH_DIR) +deploy: | $(SAVANNAH_DIR) check_prerequisites + # + # Build static website into the subdirectory `_site` using Jekyll + # jekyll build + # + # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + # DANGAROUS STEP, ommitted by default. + # + # Remove all previous files in the target directory, but no directories at + # all or CVS related stuff. This is due to a limitation of CVS, see + # + # https://web.archive.org/web/20140629054602/http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_7.html#SEC69 + # + # For some introduction to CVS, see https://savannah.nongnu.org/projects/cvs + # or http://www.cs.umb.edu/~srevilak/cvs.html. + # + # find $(SAVANNAH_DIR) -type f -not -path "*/CVS/*" -exec rm -f '{}' \; + # + # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + # + # Copy the content of that directory `_site` into the checked out + # Savannah CVS (see make target $(SAVANNAH_DIR)). + # cp -a _site/. $(SAVANNAH_DIR) + # + # Add all potential new directories to CVS + # cd $(SAVANNAH_DIR) && find . -type d -not -name "CVS" -exec cvs add '{}' \; + # + # Add all potential new files to CVS (the following command taken from + # http://stackoverflow.com/questions/5071/how-to-add-cvs-directories-recursively + # proved to be fast) + # cd $(SAVANNAH_DIR) && find . -type f | grep -v CVS | xargs cvs add + # + # Commit the chages to get online. + # cd $(SAVANNAH_DIR) && cvs commit + # + # Now everything should be visible to the world. + # + +check_prerequisites: +ifndef CHECK_GEM + $(error "Command `gem` is not available please install rubygems") +endif +ifndef CHECK_JEKYLL + $(error "Command `jekyll` is not available. ${CHECK_JEKYLL_VERSION} Try `gem install jekyll`") +endif +ifneq "3.3" "$(word 1, $(sort 3.3 $(CHECK_JEKYLL_VERSION)))" + $(error "Detected Jekyll version ${CHECK_JEKYLL_VERSION} (>= 3.3 required).") +endif + @echo "All prerequisites fulfilled." $(SAVANNAH_DIR): cd .. \ && cvs -z3 -d:ext:$(USRNAME)@cvs.savannah.gnu.org:/web/octave checkout -P octave + +.DEFAULT_GOAL :=