Handle RST languages and drafts
Enhance doc-tools-check-languages to handle translation of RST languages and publishing of draft languages to /draft/ Partially implements bp draft-publishing Change-Id: I7fd78228cfaa6e878ebdbf1432514ca453deec30
This commit is contained in:
parent
11b7494d90
commit
8509b5cb95
|
@ -1,6 +1,12 @@
|
||||||
Release notes
|
Release notes
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
0.25
|
||||||
|
----
|
||||||
|
|
||||||
|
* Enhance ``doc-tools-check-languages`` to handle translation of RST
|
||||||
|
guides and publishing of draft guides to /draft/.
|
||||||
|
|
||||||
0.24
|
0.24
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,47 @@ function setup_language {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function build_rst {
|
||||||
|
language=$1
|
||||||
|
book=$2
|
||||||
|
|
||||||
|
# Generate glossary first
|
||||||
|
tools/glossary2rst.py doc/${book}/source/glossary.rst
|
||||||
|
|
||||||
|
# First build all the single po files
|
||||||
|
# Note that we need to run inside a venv since the venv we are run in
|
||||||
|
# uses SitePackages=True and we have to install Sphinx in the venv
|
||||||
|
# together with openstackdocstheme. With SitePackages, the global Sphinx
|
||||||
|
# is used and that will not work with a local openstackdocstheme installed.
|
||||||
|
tox -evenv "sphinx-build -W -b gettext doc/${book}/source/ doc/${book}/source/locale/"
|
||||||
|
# Now run msgmerge on all files
|
||||||
|
|
||||||
|
for f in doc/${book}/source/locale/*.pot ; do
|
||||||
|
# Skip the master file
|
||||||
|
if [ $f == "doc/${book}/source/locale/${book}.pot" ] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
bf=$(basename $f)
|
||||||
|
# Remove .pot
|
||||||
|
bfname=${bf%.pot}
|
||||||
|
msgmerge -o doc/${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \
|
||||||
|
doc/${book}/source/locale/${language}/LC_MESSAGES/${book}.po \
|
||||||
|
doc/${book}/source/locale/${bf}
|
||||||
|
msgfmt doc/${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \
|
||||||
|
-o doc/${book}/source/locale/${language}/LC_MESSAGES/${bfname}.mo
|
||||||
|
done
|
||||||
|
if [ ${book} == "user-guides" ] ; then
|
||||||
|
tox -evenv "sphinx-build -t user_only -D language=${language} \
|
||||||
|
doc/${book}/source/ \
|
||||||
|
doc/${book}/build/html"
|
||||||
|
tox -evenv "sphinx-build -t admin_only -D language=${language} \
|
||||||
|
doc/${book}/source/ \
|
||||||
|
doc/${book}/build-admin/html"
|
||||||
|
else
|
||||||
|
tox -evenv "sphinx-build -D language=${language} doc/${book}/source/ \
|
||||||
|
doc/${book}/build/html"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function test_language {
|
function test_language {
|
||||||
language=$1
|
language=$1
|
||||||
|
@ -42,22 +83,34 @@ function test_language {
|
||||||
echo "Building for language $language"
|
echo "Building for language $language"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
setup_language $language
|
|
||||||
|
|
||||||
args=("-v")
|
args=("-v")
|
||||||
if [[ $PURPOSE -eq "publish" ]]; then
|
if [[ $PURPOSE -eq "publish" ]]; then
|
||||||
args+=("--publish")
|
args+=("--publish")
|
||||||
fi
|
fi
|
||||||
args+=("--check-build" "-l $language")
|
args+=("--check-build" "-l $language")
|
||||||
|
BUILD_XML=0
|
||||||
for book in ${BOOKS["$language"]}; do
|
for book in ${BOOKS["$language"]}; do
|
||||||
if [ ${SPECIAL_BOOKS[$book]+_} ] ; then
|
if [ ${SPECIAL_BOOKS[$book]+_} ] ; then
|
||||||
if [ ${SPECIAL_BOOKS[$book]} == "RST" ] ; then
|
if [ ${SPECIAL_BOOKS[$book]} == "RST" ] ; then
|
||||||
|
echo "Building translated RST book $book for $language"
|
||||||
|
build_rst $language $book
|
||||||
|
if [[ $? -eq 0 ]] ; then
|
||||||
|
echo "... succeeded"
|
||||||
|
else
|
||||||
|
echo "... failed"
|
||||||
|
BUILD_FAIL=1
|
||||||
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
args+=("--only-book $book")
|
args+=("--only-book $book")
|
||||||
|
BUILD_XML=1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$BUILD_XML" -eq "1" ] ; then
|
||||||
|
|
||||||
|
setup_language $language
|
||||||
|
|
||||||
openstack-doc-test ${args[@]}
|
openstack-doc-test ${args[@]}
|
||||||
|
|
||||||
if [[ $? -eq 0 ]] ; then
|
if [[ $? -eq 0 ]] ; then
|
||||||
|
@ -66,6 +119,21 @@ function test_language {
|
||||||
echo "... failed"
|
echo "... failed"
|
||||||
BUILD_FAIL=1
|
BUILD_FAIL=1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function handle_draft_language {
|
||||||
|
language=$1
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Moving drafts for language $language"
|
||||||
|
echo
|
||||||
|
|
||||||
|
mkdir -p publish-docs/draft/$language
|
||||||
|
for book in ${DRAFTS["$language"]}; do
|
||||||
|
mv publish-docs/$language/$book publish-docs/draft/$language/$book
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,6 +150,7 @@ function usage {
|
||||||
|
|
||||||
# Declare in case it's not in the file
|
# Declare in case it's not in the file
|
||||||
declare -A SPECIAL_BOOKS
|
declare -A SPECIAL_BOOKS
|
||||||
|
declare -A DRAFTS
|
||||||
CONF_FILE=$1
|
CONF_FILE=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
@ -121,10 +190,17 @@ for language in "$@" ; do
|
||||||
for language in "${!BOOKS[@]}"; do
|
for language in "${!BOOKS[@]}"; do
|
||||||
test_language $language
|
test_language $language
|
||||||
done
|
done
|
||||||
|
# Move draft language guides
|
||||||
|
for language in "${!DRAFTS[@]}"; do
|
||||||
|
handle_draft_language $language
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if [[ -n ${BOOKS[$language]} ]]; then
|
if [[ -n ${BOOKS[$language]} ]]; then
|
||||||
test_language $language
|
test_language $language
|
||||||
|
if [ ${DRAFTS["${language}"]+_} ] ; then
|
||||||
|
handle_draft_language $language
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
BUILD_FAIL=1
|
BUILD_FAIL=1
|
||||||
echo "Error: language $language not handled"
|
echo "Error: language $language not handled"
|
||||||
|
@ -133,4 +209,5 @@ for language in "$@" ; do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
exit $BUILD_FAIL
|
exit $BUILD_FAIL
|
||||||
|
|
|
@ -12,6 +12,14 @@ declare -A BOOKS=(
|
||||||
["fr"]="user-guide"
|
["fr"]="user-guide"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# draft books
|
||||||
|
declare -A DRAFTS=(
|
||||||
|
["fr"]="image-guide"
|
||||||
|
["ja"]="install-guide"
|
||||||
|
["pt_BR"]="install-guide"
|
||||||
|
["zh_CN"]="install-guide"
|
||||||
|
)
|
||||||
|
|
||||||
# Where does the top-level pom live?
|
# Where does the top-level pom live?
|
||||||
# Set to empty to not copy it.
|
# Set to empty to not copy it.
|
||||||
POM_FILE=doc/pom.xml
|
POM_FILE=doc/pom.xml
|
||||||
|
@ -23,6 +31,6 @@ DOC_DIR="doc/"
|
||||||
# Values need to match content in project-config/jenkins/scripts/common_translation_update.sh
|
# Values need to match content in project-config/jenkins/scripts/common_translation_update.sh
|
||||||
declare -A SPECIAL_BOOKS
|
declare -A SPECIAL_BOOKS
|
||||||
SPECIAL_BOOKS=(
|
SPECIAL_BOOKS=(
|
||||||
["playground-user-guide"]="RST"
|
["user-guides"]="RST"
|
||||||
["networking-guide"]="skip"
|
["networking-guide"]="skip"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue