#!/bin/sh
### ROX-Desk/AppRun

error_message()
{
    case $LANG in
        "ja_JP.UTF-8")
            nkfopt="-w"
            ;;
        "ja_JP.eucJP")
            nkfopt="-e"
            ;;
    esac
    echo "echo" > $HOME/ROX-Desk.msg
    echo "echo \"*** RoxDesk HOME Installer ***\"" >> $HOME/ROX-Desk.msg
    echo "echo" >> $HOME/ROX-Desk.msg
    echo  "echo ホームディレクトリに最新のバージョンがインストール済みです。| nkf $nkfopt" \
        >> $HOME/ROX-Desk.msg
    for (( i=1; i <= 12; i++ )); do
         echo "echo" >> $HOME/ROX-Desk.msg
    done
    echo  "read -p \"Hit Enter : \" ans" >> $HOME/ROX-Desk.msg
    $terminal $opt sh $HOME/ROX-Desk.msg
    rm $HOME/ROX-Desk.msg
}

home_install()
{
    echo home install
    cp -af "$curdir"/"$app_name" "$installdir"
}

sample_install()
{
    confdir="$HOME"/.config/RoxDesk
    if [ ! -d "$confdir" ]; then
        mkdir -p "$confdir"
    fi

    srcver=`cat "$curdir"/"$app_name"/sample/SampleVer`
    if [ -f "$confdir"/SampleVer ]; then
        dstver="`cat $confdir/SampleVer`"
        if [ `expr "$dstver" \< "$srcver"` == 1 ] ; then
            echo old version
            "$curdir"/"$app_name"/sample_gen
            return
	    fi
    else
        echo ver-file copy
        "$curdir"/"$app_name"/sample_gen
        return
	fi
    echo Do not install.
}

term_select()
{
    for terminal in mlterm gnome-terminal konsole terminal xterm ;  do
        if [ -x "`which $terminal`" ]; then
            case $terminal in
                gnome-terminal|terminal)
                    opt="-x"
                    ;;
                *)
                    opt="-e"
                    ;;
            esac
            break
        fi
    done
}


# start -----------------------------------------------------
echo "### ROX-Desk/AppRun"

app_name=RoxDesk
curdir=`dirname $0`
cd $curdir
curdir=`pwd`
inst_name=`basename "$curdir"`
installdir=$HOME/Apps

# generate sample files
sample_install

# check source tar-ball version
. "$curdir/$app_name/Version"
SrcVer="$VER"
DstVer=0
if [ -f "$installdir/$app_name/Version" ]; then
    . "$installdir/$app_name/Version"
	DstVer="$VER"
fi
echo Version comp. [$SrcVer] [$DstVer]

if [ `expr "$DstVer" \< "$SrcVer"` == 1 ]; then
    # Removed all files & directory.(and copy all files.)
    echo installed is old, removed
    rm -rf "$installdir"/"$app_name"
    home_install
elif [ `expr "$DstVer" \= "$SrcVer"` == 1 ]; then
    . "$curdir/$app_name/DocVersion"
    SrcDocVer="$VER"
    DstDocVer=0
    if [ -f "$installdir/$app_name/DocVersion" ]; then
        . "$installdir/$app_name/DocVersion"
	    DstDocVer="$VER"
    fi
    if [ `expr "$DstDocVer" \< "$SrcDocVer"` == 1 ]; then
        # Doesn't remove source & binary program directory.
        # And overwrited other files.
        # (For new document files)
        home_install
        cp -f "$curdir/$app_name/DocVersion" "$installdir/$app_name/"
    fi
else
    # Nothing is done. 
    error_message
    echo installed is newer, nothing is done. 
    exit 1
fi

if [ ! -x "$installdir/$app_name/ROX_Desk-$SrcVer/src/rox_desk" ]; then
    rox -s "$installdir"/"$app_name" &
fi
exec "$installdir/$app_name/AppRun"
exit 0
