| #!/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 |
|
|