diff options
Diffstat (limited to 'doc/python_api/sphinx_doc_gen.sh')
-rwxr-xr-x | doc/python_api/sphinx_doc_gen.sh | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/doc/python_api/sphinx_doc_gen.sh b/doc/python_api/sphinx_doc_gen.sh index 1ab6bd5afc7..b3bdd386f8c 100755 --- a/doc/python_api/sphinx_doc_gen.sh +++ b/doc/python_api/sphinx_doc_gen.sh @@ -3,11 +3,6 @@ # bash doc/python_api/sphinx_doc_gen.sh # ssh upload means you need an account on the server -if [ "$1" == "" ] ; then - echo "Expected a single argument for the username on blender.org, aborting" - exit 1 -fi - # ---------------------------------------------------------------------------- # Upload vars @@ -22,9 +17,15 @@ if [ -z $BLENDER_BIN ] ; then BLENDER_BIN="./blender.bin" fi -SSH_USER=$1 -SSH_HOST=$SSH_USER"@blender.org" -SSH_UPLOAD="/data/www/vhosts/www.blender.org/api" # blender_python_api_VERSION, added after +if [ "$1" == "" ] ; then + echo "Expected a single argument for the username on blender.org, skipping upload step!" + DO_UPLOAD=false +else + SSH_USER=$1 + SSH_HOST=$SSH_USER"@blender.org" + SSH_UPLOAD="/data/www/vhosts/www.blender.org/api" # blender_python_api_VERSION, added after +fi + # ---------------------------------------------------------------------------- # Blender Version & Info @@ -33,10 +34,12 @@ SSH_UPLOAD="/data/www/vhosts/www.blender.org/api" # blender_python_api_VERSION, # "_".join(str(v) for v in bpy.app.version) # custom blender vars blender_srcdir=$(dirname -- $0)/../.. -blender_version=$(grep "BLENDER_VERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}') -blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}') -blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}') -blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" | awk '{print $3}') +blender_version_header="$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h" +blender_version=$(grep "BLENDER_VERSION\s" "$blender_version_header" | awk '{print $3}') +blender_version_char=$(grep "BLENDER_VERSION_CHAR\s" "$blender_version_header" | awk '{print $3}') +blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_version_header" | awk '{print $3}') +blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_version_header" | awk '{print $3}') +unset blender_version_header if [ "$blender_version_cycle" = "release" ] ; then BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)$blender_version_char"_release" @@ -48,6 +51,8 @@ SSH_UPLOAD_FULL=$SSH_UPLOAD/"blender_python_api_"$BLENDER_VERSION SPHINXBASE=doc/python_api +SPHINX_WORKDIR="$(mktemp --directory --suffix=.sphinx)" + # ---------------------------------------------------------------------------- # Generate reStructuredText (blender/python only) @@ -59,7 +64,10 @@ if $DO_EXE_BLENDER ; then -noaudio \ --factory-startup \ --python-exit-code 1 \ - --python $SPHINXBASE/sphinx_doc_gen.py + --python $SPHINXBASE/sphinx_doc_gen.py \ + -- \ + --output=$SPHINX_WORKDIR + if (($? != 0)) ; then echo "Generating documentation failed, aborting" @@ -67,15 +75,14 @@ if $DO_EXE_BLENDER ; then fi fi - # ---------------------------------------------------------------------------- # Generate HTML (sphinx) if $DO_OUT_HTML ; then - # sphinx-build -n -b html $SPHINXBASE/sphinx-in $SPHINXBASE/sphinx-out + # sphinx-build -n -b html $SPHINX_WORKDIR/sphinx-in $SPHINX_WORKDIR/sphinx-out # annoying bug in sphinx makes it very slow unless we do this. should report. - cd $SPHINXBASE + cd $SPHINX_WORKDIR sphinx-build -b html sphinx-in sphinx-out # XXX, saves space on upload and zip, should move HTML outside @@ -103,20 +110,21 @@ fi # Generate PDF (sphinx/laytex) if $DO_OUT_PDF ; then - sphinx-build -n -b latex $SPHINXBASE/sphinx-in $SPHINXBASE/sphinx-out - make -C $SPHINXBASE/sphinx-out - mv $SPHINXBASE/sphinx-out/contents.pdf $SPHINXBASE/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf + cd $SPHINX_WORKDIR + sphinx-build -n -b latex $SPHINX_WORKDIR/sphinx-in $SPHINX_WORKDIR/sphinx-out + make -C $SPHINX_WORKDIR/sphinx-out + mv $SPHINX_WORKDIR/sphinx-out/contents.pdf \ + $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf fi - # ---------------------------------------------------------------------------- # Upload to blender servers, comment this section for testing if $DO_UPLOAD ; then - cp $SPHINXBASE/sphinx-out/contents.html $SPHINXBASE/sphinx-out/index.html + cp $SPHINX_WORKDIR/sphinx-out/contents.html $SPHINX_WORKDIR/sphinx-out/index.html ssh $SSH_USER@blender.org 'rm -rf '$SSH_UPLOAD_FULL'/*' - rsync --progress -ave "ssh -p 22" $SPHINXBASE/sphinx-out/* $SSH_HOST:$SSH_UPLOAD_FULL/ + rsync --progress -ave "ssh -p 22" $SPHINX_WORKDIR/sphinx-out/* $SSH_HOST:$SSH_UPLOAD_FULL/ ## symlink the dir to a static URL #ssh $SSH_USER@blender.org 'rm '$SSH_UPLOAD'/250PythonDoc && ln -s '$SSH_UPLOAD_FULL' '$SSH_UPLOAD'/250PythonDoc' @@ -134,11 +142,15 @@ if $DO_UPLOAD ; then if $DO_OUT_PDF ; then # rename so local PDF has matching name. - rsync --progress -ave "ssh -p 22" $SPHINXBASE/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.pdf + rsync --progress -ave "ssh -p 22" \ + $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf \ + $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.pdf fi if $DO_OUT_HTML_ZIP ; then - rsync --progress -ave "ssh -p 22" $SPHINXBASE/blender_python_reference_$BLENDER_VERSION.zip $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.zip + rsync --progress -ave "ssh -p 22" \ + $SPHINX_WORKDIR/blender_python_reference_$BLENDER_VERSION.zip \ + $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.zip fi fi @@ -149,5 +161,5 @@ fi echo "" echo "Finished! view the docs from: " -if $DO_OUT_HTML ; then echo " html:" $SPHINXBASE/sphinx-out/contents.html ; fi -if $DO_OUT_PDF ; then echo " pdf:" $SPHINXBASE/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf ; fi +if $DO_OUT_HTML ; then echo " html:" $SPHINX_WORKDIR/sphinx-out/contents.html ; fi +if $DO_OUT_PDF ; then echo " pdf:" $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf ; fi |