diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index 7266e652..21b3bc5b 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -9,6 +9,7 @@ Release notes * Remove ``dn2osdbk`` and the ``hotref`` sphinx extension. * ``autohelp.py``: Can now find options for a project in multiple python packages. +* ``doc-tools-check-languages``: Handle RST Install Guide and FirstApp. 0.29.1 ------ diff --git a/bin/doc-tools-check-languages b/bin/doc-tools-check-languages index 5eb64d87..1f9dfc26 100755 --- a/bin/doc-tools-check-languages +++ b/bin/doc-tools-check-languages @@ -46,9 +46,14 @@ function build_rst { TAG="" # We need to extract all strings, so add all supported tags if [ ${book} = "firstapp" ] ; then - TAG="-t libcloud -t fog" + TAG="-t libcloud -t fog -t dotnet -t pkgcloud -t shade" fi - tox -evenv "sphinx-build -W -b gettext $TAG ${DOC_DIR}${book}/source/ ${DOC_DIR}${book}/source/locale/" + if [ ${book} = "install-guide" ] ; then + TAG="-t obs -t rdo -t ubuntu -t debian" + fi + tox -evenv "sphinx-build -q -E -W -b gettext $TAG ${DOC_DIR}${book}/source/ \ + ${DOC_DIR}${book}/source/locale/" + # Merge the common-rst po file in if [[ -e ${DOC_DIR}common-rst/source/locale/${language}/LC_MESSAGES/common-rst.po ]] ; then msgcat --use-first -o ${DOC_DIR}${book}/source/locale/${language}/${book}.po \ @@ -66,31 +71,55 @@ function build_rst { bf=$(basename $f) # Remove .pot bfname=${bf%.pot} - msgmerge -o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \ + msgmerge --silent -o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \ ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${book}.po \ ${DOC_DIR}${book}/source/locale/${bf} msgfmt ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.po \ -o ${DOC_DIR}${book}/source/locale/${language}/LC_MESSAGES/${bfname}.mo done + + # Build all books if [ ${book} = "firstapp" ] ; then - tox -evenv "sphinx-build -t fog -D language=${language} \ - ${DOC_DIR}${book}/source/ \ - ${DOC_DIR}${book}/build-fog/html" - mkdir -p publish-docs/${language}/firstapp-fog - rsync -a ${DOC_DIR}firstapp/build-fog/html/ publish-docs/${language}/firstapp-fog - tox -evenv "sphinx-build -t libcloud -D language=${language} \ - ${DOC_DIR}${book}/source/ \ - ${DOC_DIR}${book}/build-libcloud/html" - mkdir -p publish-docs/${language}/firstapp-libcloud - rsync -a ${DOC_DIR}user-guides/build-libcloud/html/ publish-docs/${language}/firstapp-libcloud/ + # Firstapp has several variations, build all of them + for tag in libcloud dotnet fog pkgcloud shade; do + tox -evenv "sphinx-build -q -E -t $tag -D language=${language} \ + ${DOC_DIR}${book}/source/ \ + ${DOC_DIR}${book}/build-${tag}/html" + mkdir -p publish-docs/${language}/${book}-${tag} + rsync -a ${DOC_DIR}${book}/build-${tag}/html/ \ + publish-docs/${language}/${book}-${tag} + done + elif [ ${book} = "install-guide" ] ; then + # Install Guide has several variations, build all of them + title_org=$(grep "title::" ${DOC_DIR}${book}/source/index.rst | \ + awk '{print substr($0, index($0, "::")+3)}') + + trap "sed -i -e \"s/\.\. title::.*/.. title:: ${title_org}/\" \ + ${DOC_DIR}${book}/source/index.rst" EXIT + + for tag in obs rdo ubuntu debian; do + title=$(grep -m 1 -A 5 ".. only:: ${tag}" \ + ${DOC_DIR}${book}/source/index.rst | \ + sed -n 4p | sed -e 's/^ *//g') + sed -i -e "s/\.\. title::.*/.. title:: ${title}/" \ + ${DOC_DIR}${book}/source/index.rst + tox -evenv "sphinx-build -q -E -t $tag -D language=${language} \ + ${DOC_DIR}${book}/source/ \ + ${DOC_DIR}${book}/build-${tag}/html" + mkdir -p publish-docs/${language}/${book}-${tag} + rsync -a ${DOC_DIR}${book}/build-${tag}/html/ \ + publish-docs/${language}/${book}-${tag} + done else - tox -evenv "sphinx-build -D language=${language} ${DOC_DIR}${book}/source/ \ + tox -evenv "sphinx-build -q -E -D language=${language} \ + ${DOC_DIR}${book}/source/ \ ${DOC_DIR}${book}/build/html" mkdir -p publish-docs/${language}/${book}/ rsync -a ${DOC_DIR}${book}/build/html/ publish-docs/${language}/${book}/ fi } + function test_language { language=$1 @@ -148,11 +177,27 @@ function handle_draft_language { mkdir -p publish-docs/draft/$language for book in ${DRAFTS["$language"]}; do case "${book}" in - install-guide|config-reference) + config-reference) mv publish-docs/$language/draft/$book publish-docs/draft/$language/$book # Remove directory if it's empty and do not fail if it's non-empty rmdir publish-docs/$language/draft || true ;; + firstapp) + for tag in libcloud dotnet fog pkgcloud shade; do + mv publish-docs/$language/$book-${tag} \ + publish-docs/draft/$language/$book-${tag} + done + # Remove directory if it's empty and do not fail if it's non-empty + rmdir publish-docs/$language/ || true + ;; + install-guide) + for tag in obs rdo ubuntu debian; do + mv publish-docs/$language/$book-${tag} \ + publish-docs/draft/$language/$book-${tag} + done + # Remove directory if it's empty and do not fail if it's non-empty + rmdir publish-docs/$language/ || true + ;; *) mv publish-docs/$language/$book publish-docs/draft/$language/$book ;;