#!/bin/sh

    # OpenOffice.org 1.0日本語版導入プログラム for Linux ver 0.2.0
    # (C) 2002 OpenOffice.org日本ユーザー会. All Right Reserved.
    #
    # このプログラムを再頒布・改変する前に、かならずREADMEをご覧になってください。
    #また、使用方法もREADMEに含まれています。

ShowHelp ()
{
cat <<EOF

OpenOffice.org 1.0日本語版導入プログラム

使用方法: ./ja_config [-v|--version] [-h|--help] [-f|--font <font>] ooohome

    ooohome : OpenOffice.org 1.0をインストールしたディレクトリを指定します

    オプション 
	-v, --version
            バージョン情報を出力して終了します
	-h, --help
            このヘルプを出力して終了します
	-f <font>, --font <font>
            <font>に指定されたフォントをOpenOffice.org 1.0の標準フォントにします
	    (デフォルト : 東風ゴシック)

EOF
}

ShowVersion ()
{
cat <<EOF

OpenOffice.org 1.0日本語版導入プログラム for Linux 0.1.1

(C) 2002 OpenOffice.org日本ユーザー会
http://blow-away.net/openoffice/

EOF
}

cd `dirname $0`

#オプションのデフォルトの設定
font_name=東風ゴシック

#引数の処理
while [ $# -gt 0 ] ; do
    case "$1" in
	-h | --help)
	    ShowHelp
	    exit 1;;
	-v | --version)
	    ShowVersion
	    exit 1;;
	-f | --font)
	    font_name=$2
	    shift 2;;
	*)
	    lastarg=$1
	    shift;;
    esac
done

#OpenOffice.org 1.0のホームディレクトリ
ooohome=$lastarg
#指定されたOpenOffice.org 1.0のホームディレクトリが存在しない場合は終了する
if [ ! -d ${ooohome} ] ; then
    echo "エラー : 指定されたディレクトリ ${ooohome} は存在しません"
    exit 1
fi

#ユーザーが指定したOpenOffice.orgのホームディレクトリの終端が"/"であった場合には削除する
    ooohome=`echo ${ooohome} | sed -e s/\\\/$//g`
#OpenOffice.orgのuserディレクトリ
    user_dir=${ooohome}/user
#OpenOffice.orgのuserディレクトリで、"/"に対してエスケープシーケンス"\\/"を付加した文字列
    Euser_dir=`echo ${user_dir} | sed -e s/\\\//\\\\\\\\\\\//g`
#OpenOffice.orgのCommon.xmlが置かれているディレクトリ
    common_dir=${user_dir}/config/registry/instance/org/openoffice/Office
#OpenOffice.orgのSetup.xmlが置かれているディレクトリ
    setup_dir=${user_dir}/config/registry/instance/org/openoffice
#OpenOffice.orgの各種テンプレートが置かれるディレクトリ
    template_dir=${user_dir}/template
#OpenOffice.orgの各種テンプレートが置かれるディレクトリで、"/"に対してエスケープシーケンス"\\/"を付加した文字列
    Etemplate_dir=`echo ${template_dir} | sed -e s/\\\//\\\\\\\\\\\//g`

#Common.xmlの処理
#
#Common.xmlの雛形であるCommon.xml.tmp内の"FONT_NAME"という文字列を標準で使用されるフォント名に置換し、OpenOffice.orgのCommon.xmlが置かれるディレクトリにCommon.xmlとして移動させ、すでにあるCommon.xmlを上書きしてしまう。
#また、日本語を含むフォント名が指定されたときのため、iconvによって文字コードをUTF-8に変換しておく。
    rm -f Common.xml
    iconv -f UTF-8 -t EUC-JP Common.xml.tmp | sed -e s/FONT_NAME/"$font_name"/g | iconv -f EUC-JP -t UTF-8 -o Common.xml

    mv -f Common.xml ${common_dir}
    echo "Common.xml を ${common_dir} にコピーしました"

#Setup.xmlの処理
#
#Setup.xmlの雛形であるSetup.xml.tmp内の"TEMPLATE_DIR"という文字列を各種テンプレートが置かれるディレクトリ名に、"SETUP_INSTALL_DIR"という文字列をOpenOffice.orgのuserディレクトリ名に置換し、OpenOffice.orgのSetup.xmlが置かれるディレクトリにSetup.xmlとして移動させ、すでにあるSetup.xmlに上書きしてしまう。
#また、日本語を含むディレクトリ名が指定されたときのため、iconvによって文字コードをUTF-8に変換しておく。
    rm -f Setup.xml
    iconv -f UTF-8 -t EUC-JP Setup.xml.tmp | sed -e s/TEMPLATE_DIR/"${Etemplate_dir}"/g -e s/SETUP_INSTALL_DIR/"${Euser_dir}"/g | iconv -f EUC-JP -t UTF-8 -o Setup.xml

    mv -f Setup.xml ${setup_dir}
    echo "Setup.xml を ${setup_dir} にコピーしました"

#各種テンプレートのコピー
#
#normal.stw,normal.stc,normal.std,normal.sxm,normalinmpress.stiをOpenOffice.orgの各種テンプレートが置かれるディレクトリにコピーする。 

#normal.stwの雛形であるnormal.stw.tmp以下の各ファイルの"FONT_NAME"という文字列を標準で使用されるフォント名に変換し、それらの文字コードをUTF-8に変換。それらの各種ファイルをzipで圧縮し、normal.stwを生成、そのままテンプレートを置くディレクトリにコピー
    cd "normal.stw.tmp"
    sed -e s/FONT_NAME/"${font_name}"/g content.xml.euc | iconv -f EUC-JP -t UTF-8 -o content.xml
    sed -e s/FONT_NAME/"${font_name}"/g meta.xml.euc | iconv -f EUC-JP -t UTF-8 -o meta.xml
    sed -e s/FONT_NAME/"${font_name}"/g settings.xml.euc | iconv -f EUC-JP -t UTF-8 -o settings.xml
    sed -e s/FONT_NAME/"${font_name}"/g styles.xml.euc | iconv -f EUC-JP -t UTF-8 -o styles.xml

    zip -rq normal.stw content.xml meta.xml settings.xml styles.xml META-INF
    mv -f normal.stw ${template_dir}
    echo "normal.stw を ${template_dir} にコピーしました"   

#normal.stcの雛形であるnormal.stc.tmp以下の各ファイルの"FONT_NAME"という文字列を標準で使用されるフォント名に変換し、それらの文字コードをUTF-8に変換。それらの各種ファイルをzipで圧縮し、normal.stcを生成、そのままテンプレートを置くディレクトリにコピー
    cd "../normal.stc.tmp"
    sed -e s/FONT_NAME/"${font_name}"/g content.xml.euc | iconv -f EUC-JP -t UTF-8 -o content.xml
    sed -e s/FONT_NAME/"${font_name}"/g meta.xml.euc | iconv -f EUC-JP -t UTF-8 -o meta.xml
    sed -e s/FONT_NAME/"${font_name}"/g settings.xml.euc | iconv -f EUC-JP -t UTF-8 -o settings.xml
    sed -e s/FONT_NAME/"${font_name}"/g styles.xml.euc | iconv -f EUC-JP -t UTF-8 -o styles.xml

    zip -rq normal.stc content.xml meta.xml settings.xml styles.xml META-INF
    mv -f normal.stc ${template_dir}
    echo "normal.stc を ${template_dir} にコピーしました"

#normal.stdの雛形であるnormal.std.tmp以下の各ファイルの"FONT_NAME"という文字列を標準で使用されるフォント名に変換し、それらの文字コードをUTF-8に変換。それらの各種ファイルをzipで圧縮し、normal.stdを生成、そのままテンプレートを置くディレクトリにコピー
    cd "../normal.std.tmp"
    sed -e s/FONT_NAME/"${font_name}"/g content.xml.euc | iconv -f EUC-JP -t UTF-8 -o content.xml
    sed -e s/FONT_NAME/"${font_name}"/g meta.xml.euc | iconv -f EUC-JP -t UTF-8 -o meta.xml
    sed -e s/FONT_NAME/"${font_name}"/g settings.xml.euc | iconv -f EUC-JP -t UTF-8 -o settings.xml
    sed -e s/FONT_NAME/"${font_name}"/g styles.xml.euc | iconv -f EUC-JP -t UTF-8 -o styles.xml

    zip -rq normal.std content.xml meta.xml settings.xml styles.xml META-INF Pictures
    mv -f normal.std ${template_dir}
    echo "normal.std を ${template_dir} にコピーしました"

#normal.sxmをそのままコピー
    cd ".."
    cp -f normal.sxm ${template_dir}
    echo "normal.sxm を ${template_dir} にコピーしました"

#normalimpress.stiの雛形であるnormalimpress.sti.tmp以下の各ファイルの"FONT_NAME"という文字列を標準で使用されるフォント名に変換し、それらの文字コードをUTF-8に変換。それらの各種ファイルをzipで圧縮し、normalimpress.stiを生成、そのままテンプレートを置くディレクトリにコピー
    cd "normalimpress.sti.tmp"
    sed -e s/FONT_NAME/"${font_name}"/g content.xml.euc | iconv -f EUC-JP -t UTF-8 -o content.xml
    sed -e s/FONT_NAME/"${font_name}"/g meta.xml.euc | iconv -f EUC-JP -t UTF-8 -o meta.xml
    sed -e s/FONT_NAME/"${font_name}"/g settings.xml.euc | iconv -f EUC-JP -t UTF-8 -o settings.xml
    sed -e s/FONT_NAME/"${font_name}"/g styles.xml.euc | iconv -f EUC-JP -t UTF-8 -o styles.xml

    zip -rq normalimpress.sti content.xml meta.xml settings.xml styles.xml META-INF Pictures
    mv -f normalimpress.sti ${template_dir}
    echo "normalimpress.sti を ${template_dir} にコピーしました"

    echo "完了"