| #!/bin/bash |
| |
| export latest=no |
| export branch=master |
| export action=build |
| |
| while [ "$#" -gt 0 ]; do |
| case "$1" in |
| --version=*) |
| version="${1#*=}" |
| ;; |
| --latest) |
| latest="yes" |
| ;; |
| --github-branch=*) |
| branch="${1#*=}" |
| ;; |
| --serve) |
| action=serve |
| ;; |
| *) |
| printf "***********************************************************\n" |
| printf "* Error: Invalid argument, *\n" |
| printf "***********************************************************\n" |
| exit 1 |
| esac |
| shift |
| done |
| |
| if [ -z "$version" ]; then |
| echo "specify the version: --version=1.0.0" |
| exit 1 |
| fi |
| |
| # clone Ignite repo locally to copy only the content for docs. |
| # @todo: is there a way to avoid cloning the entire branch and bring only the docs/ dir? |
| export tmp_dir=tmp |
| rm -rf $tmp_dir |
| mkdir $tmp_dir |
| git -C $tmp_dir clone --single-branch --branch $branch https://github.com/apache/ignite.git docs_$version |
| rm -rf _docs _data _plugins |
| cp -R $tmp_dir/docs_$version/docs/_docs _docs |
| cp -R $tmp_dir/docs_$version/docs/_data/ _data |
| cp -R $tmp_dir/docs_$version/docs/_plugins/ _plugins |
| |
| # update contents for the jekyll config file |
| if [ "$latest" = "yes" ]; then |
| sed "s/{version}/$version/g;s/{base_url}/\/docs\/latest/g" _config.template > _config.yml |
| else |
| sed "s/{version}/$version/g;s/{base_url}/\/docs\/$version/g" _config.template > _config.yml |
| fi |
| # build/serve |
| bundle exec jekyll $action |
| |
| # move built files to /docs/ dir under website root dir. |
| if [ "$action" = "build" ]; then |
| |
| rm -rf ../docs/$version |
| cp -R _site/docs/$version ../docs/$version |
| cp -R _site/assets ../ |
| |
| if [ "$latest" = "yes" ]; then |
| rm ../docs/latest |
| ln -s ../docs/$version ../docs/latest |
| fi |
| fi |
| |
| # clean up some stuff |
| rm -r _config.yml |
| rm -rf _data |
| rm -rf _docs |
| rm -rf _plugins |
| rm -rf $tmp_dir |