Something went wrong on our end
-
Vincent Hatakeyama authoredVincent Hatakeyama authored
create_documentation 2.92 KiB
#!/bin/zsh
# vim: set shiftwidth=4 softtabstop=4:
#
# This script generates documentation in all submodules.
# It needs:
# - openerp to be installed
#
# Version 2.7
here=$(dirname $0)
project_home=$(cd $here && cd .. && echo $PWD)
project_name_from_home=$(basename $project_home)
project_name=${DRONE_REPO_NAME:-project_name_from_home}
python=python
format=html
out_dir=${project_home}/_build/$format
# color stuff
autoload colors && colors
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
eval $COLOR='$fg_no_bold[${(L)COLOR}]'
eval BOLD_$COLOR='$fg_bold[${(L)COLOR}]'
done
eval RESET='$reset_color'
pushd $project_home
# determine branch name
if [ -n "$DRONE_BRANCH" ]; then
branch="$DRONE_BRANCH"
elif [ -e ".git" ]; then
branch="$(git rev-parse --abbrev-ref HEAD)"
elif [ -e ".hg" ]; then
branch="$(hg id -b)"
else
echo "${RED}WARN${RESET} - Branch name not found"
branch="unknown"
fi
for doc_dir in doc docs; do
if [[ -d "$doc_dir" ]] ; then
pushd $doc_dir
for language in "en" ; do
make -e SPHINXOPTS=-Dlanguage=${language} $format
# TODO read value from Makefile
builddir=_build
dest_dir=$out_dir/$project_name/$language/$branch
if [[ $? -eq 0 ]] ; then
echo "${YELLOW}INFO ${RESET} - Documentation generation done for $doc_dir (superproject), copy to $dest_dir"
mkdir -p $dest_dir
cp -r $builddir/$format/. $dest_dir
else
echo "${RED}ERROR${RESET} - Documentation generation failed for $doc_dir (superproject)"
fi
done
popd
fi
done
odoo_modules="$($python -B -c "from six.moves import configparser ; import os ; c = configparser.ConfigParser() ; c.read('${project_home}/setup.cfg') ; print(' '.join(c.get('odoo_scripts', 'modules').split()))")"
for module_path in $(eval echo $odoo_modules) ;
do
if [[ -d "$module_path" ]] ; then
pushd $module_path
module=$(basename $module_path)
has_doc=""
for doc_dir in doc docs ; do
if [[ -d $doc_dir && -e $doc_dir/Makefile ]]; then
has_doc=True
echo ${YELLOW}INFO ${RESET} - Makefile found in $dir/$module_path/$doc_dir
pushd $doc_dir
if [ -e ".git" ]; then
branch="$(git rev-parse --abbrev-ref HEAD)"
elif [ -e ".hg" ]; then
branch="$(hg id -b)"
else
branch="default"
fi
# TODO read value from Makefile
for language in "en" ; do
make -e SPHINXOPTS=-Dlanguage=${language} $format
# TODO read value from Makefile
builddir=_build
dest_dir=$out_dir/$module/$language/$branch
if [[ $? -eq 0 ]] ; then
echo ${YELLOW}INFO ${RESET} - Documentation generation done for $dir/$module_path/$doc_dir, copy to $dest_dir
mkdir -p $dest_dir
cp -r $builddir/$format/. $dest_dir
else
echo ${RED}ERROR${RESET} - Documentation generation failed for $dir/$module_path/$doc_dir
fi
done
popd
fi
done
if [[ -z "$has_doc" ]] ; then
echo ${RED}ERROR${RESET} - Missing documentation for $dir/$module_path
fi
popd
fi
done
popd