summaryrefslogtreecommitdiffstats
path: root/docs/pre-hook.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docs/pre-hook.sh')
-rwxr-xr-xdocs/pre-hook.sh113
1 files changed, 113 insertions, 0 deletions
diff --git a/docs/pre-hook.sh b/docs/pre-hook.sh
new file mode 100755
index 0000000..6574cdc
--- /dev/null
+++ b/docs/pre-hook.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 NEC and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+GIT_CLONE_BASE=${GIT_CLONE_BASE:-ssh://gerrit.opnfv.org:29418}
+GERRIT_BRANCH=${GERRIT_BRANCH:-master}
+WORKSPACE=${WORKSPACE:-.}
+
+get_repo_names() {
+ # NOTE: Not all repositories are ready for the composite docs,
+ # so we have the repo name list here to add project docs
+ # one by one. This will be replaced by the list in project.cfg .
+ # grep -v '^#' releng/jjb/opnfvdocs/project.cfg | sort
+ echo "apex"
+ echo "bottlenecks"
+ echo "compass4nfv"
+ echo "copper"
+ echo "daisy"
+ echo "doctor"
+ echo "fastpathmetrics"
+ echo "fuel"
+ echo "functest"
+ echo "ipv6"
+ echo "joid"
+ echo "ovsnfv"
+ echo "pharos"
+ echo "prediction"
+ echo "promise"
+ echo "sdnvpn"
+ echo "vswitchperf"
+ echo "yardstick"
+}
+
+git_clone() {
+ _repo="$1"
+
+ [[ -d "$WORKSPACE/$_repo" ]] && return 0
+ pushd $WORKSPACE
+ git clone -b $GERRIT_BRANCH --depth 1 --quiet $GIT_CLONE_BASE/$_repo
+ popd
+}
+
+repos=$(get_repo_names)
+
+[[ -e docs/projects ]] && rm -rf docs/projects
+mkdir -p docs/projects
+
+echo
+echo "Cloning repos of participating OPNFV Projects and copying docs"
+echo
+for repo in $repos; do
+ echo " $repo ($GERRIT_BRANCH)"
+ git_clone $repo
+ [[ -e $WORKSPACE/$repo/docs ]] || continue
+ [[ -e docs/projects/$repo ]] && rm -rf docs/projects/$repo
+ cp -r $WORKSPACE/$repo/docs docs/projects/$repo
+done
+
+# NOTE: Removing index.rst in project repos to reduce number of docs.
+find docs/projects -type f -name 'index.rst' -print | xargs -I i rm -f i
+
+# fix relative file paths
+pattern='.. \(include\|figure\):: *[^ \/]'
+base_path="/$(pwd)/docs_build/_src"
+find docs/projects -type f -name '*.rst' -print | while read f
+do
+ sed -i -e "/$pattern/s|:: *|:: $base_path/$(dirname ${f#docs/})/|" $f
+done
+
+# for debug
+grep -e '.. include::' -e '.. figure::' -r docs/projects
+
+# NOTE: automated link generation is not ready...
+echo
+echo "Creating document links"
+echo
+targets="
+configurationguide/configuration.options.render.rst
+configurationguide/scenario.description.rst
+userguide/feature.userguide.render.rst
+testframework/framework.installation.procedure.render.rst
+testframework/framework.userguide.render.rst
+"
+# configurationguide/post-install.rst
+for guide in $targets
+do
+ mainfile="$WORKSPACE/docs/$guide"
+ basefilename=$(basename ${guide/-/})
+ for repo in $repos
+ do
+ targetfile="$WORKSPACE/docs/projects/$repo/${guide/-/}"
+ targetlink="../projects/$repo/${guide/-/}"
+ projectfilename="${basefilename/.rst/-$repo.rst}"
+ projectfile="$(dirname $mainfile)/$projectfilename"
+ [[ -e "$targetfile" ]] || continue
+ echo "Adding $repo to $guide ..."
+ echo "" >> $mainfile
+ echo ".. toctree::" >> $mainfile
+ echo "" >> $mainfile
+ echo " $projectfilename" >> $mainfile
+ echo ".. include:: $targetlink" > $projectfile
+ done
+ echo
+ echo "Generated $guide:"
+ cat $mainfile
+ echo
+done