#!/bin/ksh

set -u
umask 0002

#### get argument
[ $# -gt 0 ] || { echo "specify PACKAGE" 1>&2; exit 1; }

update_flag=0
while [ $# -ne 0 ];do
    if [ "$1" = "-u" -o "$1" = "--update" ]; then
        update_flag=1
    else
        package=$1
    fi
    shift
done

#### search doc repository
svn_base_dir=product/${package}
look_tree_cmd="svnlook tree --full-paths /srv/svn"
svn_tree=`$look_tree_cmd "$svn_base_dir/docs" 2> /dev/null` \
  || svn_tree=`$look_tree_cmd "$svn_base_dir/doc" 2>/dev/null` \
  || { echo "wrong PACKAGE name" 1>&2; exit 2; }

#### get target documents
for line in $svn_tree; do
  echo $line | grep -i .*install.*odt$ >/dev/null \
    && svn_doc_list+=($line)
done

#### get subdir
for line in ${svn_doc_list[@]}; do
  tmp_str=${line#*/doc*/}; center_dir=${tmp_str%/*odt}
  ocean_doc_dir+=(${center_dir})
done

#### make dir in ocean
doc_dir="/srv/share/product/release/doc/${package}"
mkdir -p $doc_dir
for dir in ${ocean_doc_dir[@]}; do
  echo $dir | grep odt$ >/dev/null && break
  mkdir -p ${doc_dir}/${dir}
done

## Update?
if [ $update_flag = 0 ]; then
    ls $doc_dir/$dir/*.pdf 2>/dev/null && exit 0
fi

#### convert and send to peace
svn_uri_root="file:///srv/svn"
for svn_doc in ${svn_doc_list[@]}; do
  svn_doc_uri="$svn_uri_root/$svn_doc"
  doc="${doc_dir}/${svn_doc#*/doc*/}"    #full-path
  pdf="${doc%.*}.pdf"

  svn export -q "$svn_doc_uri" "$doc"
  libreoffice --invisible --convert-to pdf --outdir `dirname $pdf` $doc
  done_flag=1
  rm "$doc"
  echo -n "$pdf "

  peace_name=peace.osstech.co.jp
  peace_pkgdir=/srv/osstech/www/www.osstech.co.jp/html/download/updates/docs
  download_url="http://www.osstech.co.jp/download/updates/docs/${package}/${pdf##*/}"
  echo "sending InstallGuide to peace" 1>&2
  rsync -tp --chmod=g+w "$pdf" "${peace_name}:${peace_pkgdir}/${package}" 1>&2
  echo "" 1>&2
  echo "* インストールガイド: ${pdf##*/}" 1>&2
  echo "  * $download_url" 1>&2
  echo "" 1>&2
done
echo

[ ${done_flag:-0} = 1 ] || \
{ \
  echo "only the documents its name beginning \"OSTD\"" 1>&2;
  exit 3;
}

exit 0
