|
|
- #!/usr/bin/env bash
- set -euo pipefail
-
- if [ "$CIRCLE_BRANCH" == "" ]; then
- echo "this script is meant to be run on CircleCI, exiting"
- echo 1
- fi
-
- # check for changes in the `rpc/core` directory
- did_rpc_change=$(git diff --name-status $CIRCLE_BRANCH origin/master | grep rpc/core)
-
- if [ "$did_rpc_change" == "" ]; then
- echo "no changes detected in rpc/core, exiting"
- exit 0
- else
- echo "changes detected in rpc/core, continuing"
- fi
-
- # only run this script on changes to rpc/core committed to develop
- if [ "$CIRCLE_BRANCH" != "master" ]; then
- echo "the branch being built isn't master, exiting"
- exit 0
- else
- echo "on master, building the RPC docs"
- fi
-
- # godoc2md used to convert the go documentation from
- # `rpc/core` into a markdown file consumed by Slate
- go get github.com/davecheney/godoc2md
-
- # slate works via forks, and we'll be committing to
- # master branch, which will trigger our fork to run
- # the `./deploy.sh` and publish via the `gh-pages` branch
- slate_repo=github.com/tendermint/slate
- slate_path="$GOPATH"/src/"$slate_repo"
-
- if [ ! -d "$slate_path" ]; then
- git clone https://"$slate_repo".git $slate_path
- fi
-
- # the main file we need to update if rpc/core changed
- destination="$slate_path"/source/index.html.md
-
- # we remove it then re-create it with the latest changes
- rm $destination
-
- header="---
- title: RPC Reference
-
- language_tabs:
- - shell
- - go
-
- toc_footers:
- - <a href='https://tendermint.com/'>Tendermint</a>
- - <a href='https://github.com/lord/slate'>Documentation Powered by Slate</a>
-
- search: true
- ---"
-
- # write header to the main slate file
- echo "$header" > "$destination"
-
- # generate a markdown from the godoc comments, using a template
- rpc_docs=$(godoc2md -template rpc/core/doc_template.txt github.com/tendermint/tendermint/rpc/core | grep -v -e "pipe.go" -e "routes.go" -e "dev.go" | sed 's$/src/target$https://github.com/tendermint/tendermint/tree/master/rpc/core$')
-
- # append core RPC docs
- echo "$rpc_docs" >> "$destination"
-
- # commit the changes
- cd $slate_path
-
- git config --global user.email "github@tendermint.com"
- git config --global user.name "tenderbot"
-
- git commit -a -m "Update tendermint RPC docs via CircleCI"
- git push -q https://${GITHUB_ACCESS_TOKEN}@github.com/tendermint/slate.git master
|