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