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