cannam@147: #! /usr/bin/env bash cannam@147: cannam@147: set -eu cannam@147: shopt -s extglob cannam@147: cannam@147: if grep 'localhost:4000' *.md _posts/*.md; then cannam@147: echo "ERROR: Your content has links to localhost:4000!" >&2 cannam@147: exit 1 cannam@147: fi cannam@147: cannam@147: if [ "x$(git status --porcelain)" != "x" ]; then cannam@147: echo -n "git repo has uncommited changes. Continue anyway? (y/N) " >&2 cannam@147: read -n 1 YESNO cannam@147: echo >&2 cannam@147: if [ "x$YESNO" != xy ]; then cannam@147: exit 1 cannam@147: fi cannam@147: fi cannam@147: cannam@147: case $(git rev-parse --abbrev-ref HEAD) in cannam@147: master ) cannam@147: echo "On master branch. Will generate to /next." cannam@147: CONFIG=_config_next.yml cannam@147: PREFIX=/next cannam@147: LABEL="preview site" cannam@147: FUTURE=--future cannam@147: ;; cannam@147: cannam@147: release-* ) cannam@147: echo "On release branch. Will generate to /." cannam@147: CONFIG=_config.yml cannam@147: PREFIX= cannam@147: LABEL="site" cannam@147: FUTURE= cannam@147: ;; cannam@147: cannam@147: * ) cannam@147: echo "Unrecognized branch." >&2 cannam@147: exit 1 cannam@147: ;; cannam@147: esac cannam@147: cannam@147: echo "Regenerating site..." cannam@147: cannam@147: rm -rf _site _site.tar.gz cannam@147: cannam@147: jekyll build --safe $FUTURE --config $CONFIG cannam@147: cannam@147: echo -n "Push now? (y/N)" cannam@147: read -n 1 YESNO cannam@147: echo cannam@147: cannam@147: if [ "x$YESNO" == "xy" ]; then cannam@147: echo "Pushing..." cannam@147: tar cz --xform='s,_site/,,' _site/* | gce-ss ssh fe --command "cd /var/www/capnproto.org$PREFIX && tar xz" cannam@147: else cannam@147: echo "Push CANCELED" cannam@147: fi