aboutsummaryrefslogtreecommitdiffstats
path: root/tools/__init__.py
blob: 16e9790e87a5f2127b3d884e9f443d649c97fac9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Copyright 2015 Intel Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Tools package.
"""
ckground-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/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 "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