#!/bin/sh

usage()
{
    cat << EOF | nkf $nkfopt
appdirgen: rox application directory generator

  /usr/share/applications 内のデスクトップエントリファイルを
  参照して、\$HOME/Apps/Application 以下に、アプリケーション
  の wrapper としての rox 用アイテム(AppDir)を生成します。

  usage:
    appdirgen [option]
      option:
        -h, --help      このメッセージを表示
        -i, --install   ホームディレクトリへのインストール
        -f, --force     ~/Apps/Applications/ の強制更新
        -E, --extend    rox を拡張
        -R, --revert    rox の拡張を元に戻す
      Default:
          ホームディレクトリへ未インストールの場合:
              ホームディレクトリへのインストールを実行
          ホームディレクトリへのインストール済みの場合:
              /usr/share/applications をチェックし、更新されている場合は
              ~/Apps/Applications/ を更新する
  ※詳細は /usr/apps/ROX-AppDirGen/AppDirGen/Help/index.html を。
EOF
}

version_check()
{
    ver_sameorlater=0
    if [ -f "$usrdir"/"$app_name"/Help/VERSION ]; then
        sysver="`cat "$sysdir"/"ROX-$app_name"/"$app_name"/Help/VERSION`"
        usrver="`cat "$usrdir"/"$app_name"/Help/VERSION`"
        ver_sameorlater=`expr "$usrver" \>= "$sysver"`
    else
        ver_sameorlater=-1
    fi
}

home_install()
{
    if [ -x "$sysdir"/ROX-"$app_name"/AppRun ]; then
        "$sysdir"/ROX-"$app_name"/AppRun
    fi
}

# start
usrdir=$HOME/Apps
sysdir=/usr/apps
if [ -f "`dirname $0`"/SYSDIR ]; then
    # overwrite sysdir
    . "`dirname $0`"/SYSDIR
fi

app_name=AppDirGen

case $LANG in
    "ja_JP.UTF-8")
        nkfopt="-w"
        ;;
    "ja_JP.eucJP")
        nkfopt="-e"
        ;;
esac

version_check

case $# in
    0)
        break;;
    1)
        case $1 in
            -h|--help)
                usage
                exit;;
            -i|--install)
                home_install
                exit;;
            -f|--force)
                opt="--force"
                ;;
            -E|--extend)
                opt="--extend"
                ;;
            -R|--revert)
                opt="--revert"
                ;;
        esac
        break;;
    *)
        usage
        exit;;
esac

case "$ver_sameorlater" in
    0)
        cat << EOF | nkf $nkfopt
ホーム・インストールされている AppDirGen は古いバージョンです。
先に appdirgen --install を実行し、AppDirGen を更新してください。
EOF
        exit;;
    -1)
        cat << EOF | nkf $nkfopt
ホーム・インストールされていません。
先に appdirgen --install を実行してください。
EOF
        exit;;
esac

exec "$usrdir"/"$app_name"/AppRun "$opt"


