buddyspike
6/10/2017 - 8:56 AM

hugo deployment

hugo deployment

#!/bin/sh

set -e

DIR=$(dirname "$0")

if [[ $(git status -s) ]]
then
    echo "The working directory is dirty. Please commit any pending changes."
    exit 1;
fi

DEFAULT_UPSTREAM=""
UPSTREAM=$(git remote -v | grep "upstream" | grep -v grep | cat)

if [ -z "$UPSTREAM" ]
then
  echo "Upstream not found. Configuring the upstream."
  git remote add upstream "$DEFAULT_UPSTREAM" &&
  git fetch --all
  echo "Upstream configured to point to $DEFAULT_UPSTREAM."
fi

echo "Deleting old publication"
rm -rf public
mkdir public
git worktree prune

echo "Checking out gh-pages branch into public"
git worktree add -B gh-pages public upstream/gh-pages
rm -rf public/*

echo "Generating site"
hugo --baseUrl "/"

echo "Updating gh-pages branch"
pushd public && git add --all && git commit -m "Publishing to gh-pages (deploy.sh)"

git push -f | cat

popd

echo "published"