|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
REMOTE=${1:-origin} |
|
|
|
echo "Generating docs and pushing to $REMOTE:gh-pages..." |
|
echo "To build and view docs when not on master, simply do 'jekyll serve -s docs'." |
|
echo |
|
|
|
REMOTE_URL=`git config --get remote.${REMOTE}.url` |
|
BRANCH=`git rev-parse --abbrev-ref HEAD` |
|
MSG=`git log --oneline -1` |
|
|
|
if [[ $BRANCH = 'master' ]]; then |
|
|
|
DIR="$( cd "$(dirname "$0")" ; pwd -P )" |
|
DOCS_SITE_DIR=$DIR/../docs/_site |
|
|
|
|
|
|
|
mkdir -p $DOCS_SITE_DIR |
|
cd $DOCS_SITE_DIR |
|
SITE_REMOTE_URL=`git config --get remote.${REMOTE}.url` |
|
SITE_BRANCH=`git rev-parse --abbrev-ref HEAD` |
|
|
|
echo $SITE_REMOTE_URL |
|
echo $SITE_BRANCH |
|
echo `pwd` |
|
|
|
if [[ ( $SITE_REMOTE_URL = $REMOTE_URL ) && ( $SITE_BRANCH = 'gh-pages' ) ]]; then |
|
echo "Confirmed that docs/_site has same remote as main repo, and is on gh-pages." |
|
else |
|
echo "Checking out $REMOTE:gh-pages into docs/_site (will take a little time)." |
|
git init . |
|
git remote add -t gh-pages -f $REMOTE $REMOTE_URL |
|
git checkout gh-pages |
|
fi |
|
|
|
echo "Building the site into docs/_site, and committing the changes." |
|
jekyll build -s .. -d . |
|
git add --all . |
|
git commit -m "$MSG" |
|
git push $REMOTE gh-pages |
|
|
|
echo "All done!" |
|
cd ../.. |
|
else echo "You must run this deployment script from the 'master' branch." |
|
fi |
|
|