#!/usr/bin/env bash
# Copyright 2018 Slightech Co., Ltd. All rights reserved.
#
# 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.

# _VERBOSE_=1
# _TEST_=1

BASE_DIR=$(cd "$(dirname "$0")" && pwd)
ROOT_DIR=$(realpath "$BASE_DIR/..")
SCRIPTS_DIR="$ROOT_DIR/scripts"

source "$SCRIPTS_DIR/common/echo.sh"
source "$SCRIPTS_DIR/common/mkdir.sh"
source "$SCRIPTS_DIR/common/detect.sh"

_detect "doxygen"
_detect "pdflatex" 1

source "$BASE_DIR/langs.sh"
DOXYFILE="api.doxyfile"
OUTPUT="$BASE_DIR/_output"

# \usepackage{CJKutf8}
# \begin{document}
# \begin{CJK}{UTF8}{gbsn}
# ...
# \end{CJK}
# \end{document}
_texcjk() {
  tex="$1"; shift;
  _echo_in "add cjk to $tex"
  sed -i "" -E $'s/^\\\\begin{document}$/\\\\usepackage{CJKutf8}\\\n\\\\begin{document}\\\n\\\\begin{CJK}{UTF8}{gbsn}/g' $tex
  sed -i "" -E $'s/^\\\\end{document}$/\\\\end{CJK}\\\n\\\\end{document}/g' $tex
}

for lang in "${LANGS[@]}"; do
  _echo_s "Build doc $lang"
  [ -d "$BASE_DIR/$lang" ] || continue
  cd "$BASE_DIR/$lang"
  if [ -f "$DOXYFILE" ]; then
    _mkdir "$OUTPUT/$lang"
    _echo_i "doxygen $DOXYFILE"
    doxygen $DOXYFILE

    version=`cat $DOXYFILE | grep -m1 "^PROJECT_NUMBER\s*=" | \
      sed -E "s/^.*=[[:space:]]*(.*)[[:space:]]*$/\1/g"`

    # html
    if [ -d "$OUTPUT/$lang/html" ]; then
      dirname="mynt-eye-s-sdk-apidoc"; \
        [ -n "$version" ] && dirname="$dirname-$version"; \
        dirname="$dirname-$lang"
      cd "$OUTPUT/$lang"
      [ -d "$dirname" ] && rm -rf "$dirname"
      mv "html" "$dirname" && zip -r "$dirname.zip" "$dirname"
    fi

    # latex
    if [ $pdflatex_FOUND ] && [ -f "$OUTPUT/$lang/latex/Makefile" ]; then
      _echo_in "doxygen make latex"
      filename="mynt-eye-s-sdk-apidoc"; \
        [ -n "$version" ] && filename="$filename-$version"; \
        filename="$filename-$lang.pdf"
      cd "$OUTPUT/$lang/latex" && _texcjk refman.tex && make
      [ -f "refman.pdf" ] && mv "refman.pdf" "../$filename"
    fi

    _echo_d "doxygen completed"
  else
    _echo_e "$DOXYFILE not found"
  fi
done
