#!/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 ############################################################################## set -o errexit set -o nounset set -o pipefail set -o xtrace GIT_CLONE_BASE=${GIT_CLONE_BASE:-ssh://gerrit.opnfv.org:29418} GERRIT_BRANCH=${GERRIT_BRANCH:-master} WORKSPACE=${WORKSPACE:-/tmp} 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 "compass4nfv" echo "copper" echo "doctor" echo "fastpathmetrics" echo "fuel" echo "functest" echo "ipv6" echo "joid" echo "ovsnfv" echo "pharos" 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 } git_clone releng 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=" configguide/installer-config.rst configguide/feature-config.rst userguide/test-usage.rst userguide/feature-usage.rst " # configguide/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 $WORKSPACE/releng/utils/docs-build.sh echo "Done"