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