From b3fdb1c93593faa6fb674937155f911beb2f0200 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Mon, 17 Nov 2014 12:45:09 -0600 Subject: [PATCH] Simplify docs build Remove unnecessary old code from tools/build_docs.sh; it now only builds docs for the current branch in the current working directory. Fix the merging if the git log changes into changes.html. Change-Id: I965dc3383b6317807ca0d47fe42648a19e96b57b --- doc/source/changes.rst | 2 + tools/build_docs.sh | 87 ++++-------------------------------------- tox.ini | 2 +- 3 files changed, 11 insertions(+), 80 deletions(-) diff --git a/doc/source/changes.rst b/doc/source/changes.rst index f4a326d60e..abe132c31c 100644 --- a/doc/source/changes.rst +++ b/doc/source/changes.rst @@ -8,3 +8,5 @@ Recent Changes What's been happening? These are the commits to DevStack for the last six months. For the complete list see `the DevStack project in Gerrit `__. + +%GIT_LOG% diff --git a/tools/build_docs.sh b/tools/build_docs.sh index f52b179b7e..929d1e0e6c 100755 --- a/tools/build_docs.sh +++ b/tools/build_docs.sh @@ -1,35 +1,19 @@ #!/usr/bin/env bash -# **build_docs.sh** - Build the gh-pages docs for DevStack +# **build_docs.sh** - Build the docs for DevStack # # - Install shocco if not found on PATH and INSTALL_SHOCCO is set # - Clone MASTER_REPO branch MASTER_BRANCH # - Re-creates ``doc/build/html`` directory from existing repo + new generated script docs # Usage: -## build_docs.sh [-o ] [-g] [master| []] -## The DevStack repository to clone (default is DevStack github repo) -## If a repo is not supplied use the current directory -## (assumed to be a DevStack checkout) as the source. -## The DevStack branch to check out (default is master; ignored if -## repo is not specified) -## . Use the current repo and branch (do not use with -p to -## prevent stray files in the workspace being added tot he docs) +## build_docs.sh [-o ] ## -o Write the static HTML output to ## (Note that will be deleted and re-created to ensure it is clean) -## -g Update the old gh-pages repo (set PUSH=1 to actually push up to RCB) # Defaults # -------- -# Source repo/branch for DevStack -MASTER_REPO=${MASTER_REPO:-git://git.openstack.org/openstack-dev/devstack} -MASTER_BRANCH=${MASTER_BRANCH:-master} - -# http://devstack.org is a GitHub gh-pages site in the https://github.com/cloudbuilders/devtack.git repo -GH_PAGES_REPO=git@github.com:cloudbuilders/devstack.git - -DOCS_SOURCE=doc/source HTML_BUILD=doc/build/html # Keep track of the devstack directory @@ -60,10 +44,8 @@ if ! which shocco; then fi # Process command-line args -while getopts go: c; do +while getopts o: c; do case $c in - g) GH_UPDATE=1 - ;; o) HTML_BUILD=$OPTARG ;; esac @@ -71,55 +53,24 @@ done shift `expr $OPTIND - 1` -if [[ -n "$1" ]]; then - master="master" - if [[ "${master/#$1}" != "master" ]]; then - # Partial match on "master" - REPO=$MASTER_REPO - else - REPO=$1 - fi - REPO_BRANCH=${2:-$MASTER_BRANCH} -fi - -# Check out a specific DevStack branch -if [[ -n $REPO ]]; then - # Make a workspace - TMP_ROOT=$(mktemp -d work-docs-XXXX) - echo "Building docs in $TMP_ROOT" - cd $TMP_ROOT - - # Get the master branch - git clone $REPO devstack - cd devstack - if [[ -n "$REPO_BRANCH" ]]; then - git checkout $REPO_BRANCH - fi -fi - -# Assumption is we are now in the DevStack workspace to be processed - # Processing # ---------- -# Clean up build dir -rm -rf $HTML_BUILD +# Ensure build dir exists mkdir -p $HTML_BUILD # Get fully qualified dirs -FQ_DOCS_SOURCE=$(cd $DOCS_SOURCE && pwd) FQ_HTML_BUILD=$(cd $HTML_BUILD && pwd) -# Get repo static -cp -pr $FQ_DOCS_SOURCE/* $FQ_HTML_BUILD - # Insert automated bits GLOG=$(mktemp gitlogXXXX) +echo "
    " >$GLOG git log \ --pretty=format:'
  • %s - Commit %h %cd
  • ' \ --date=short \ - --since '6 months ago' | grep -v Merge >$GLOG -sed -e $"/%GIT_LOG%/r $GLOG" $FQ_DOCS_SOURCE/changes.html >$FQ_HTML_BUILD/changes.html + --since '6 months ago' | grep -v Merge >>$GLOG +echo "
" >>$GLOG +sed -i~ -e $"/^.*%GIT_LOG%.*$/r $GLOG" -e $"/^.*%GIT_LOG%.*$/s/^.*%GIT_LOG%.*$//" $FQ_HTML_BUILD/changes.html rm -f $GLOG # Build list of scripts to process @@ -138,28 +89,6 @@ for f in $(find functions functions-common lib samples -type f -name \*); do done echo "$FILES" >doc/files -if [[ -n $GH_UPDATE ]]; then - GH_ROOT=$(mktemp -d work-gh-XXXX) - cd $GH_ROOT - - # Pull the latest docs branch from devstack.org repo - git clone -b gh-pages $GH_PAGES_REPO gh-docs - - # Get the generated files - cp -pr $FQ_HTML_BUILD/* gh-docs - - # Collect the new generated pages - (cd gh-docs; find . -name \*.html -print0 | xargs -0 git add) - - # Push our changes back up to the docs branch - if ! git diff-index HEAD --quiet; then - git commit -a -m "Update script docs" - if [[ -n $PUSH ]]; then - git push - fi - fi -fi - # Clean up or report the temp workspace if [[ -n REPO && -n $PUSH_REPO ]]; then echo rm -rf $TMP_ROOT diff --git a/tox.ini b/tox.ini index c8d3909805..a958ae7ba4 100644 --- a/tox.ini +++ b/tox.ini @@ -36,5 +36,5 @@ setenv = TOP_DIR={toxinidir} INSTALL_SHOCCO=true commands = - bash tools/build_docs.sh python setup.py build_sphinx + bash tools/build_docs.sh