#!/bin/bash
# Last Modified: @mac.app.deployment.timestamp@

# This is a script file to be executed during installation

###############################################################################
#       D E F I N E           P A T H       A N D        N A M E S            #
###############################################################################

# $1 is the PKG path
PKG_HOME=$1

# $2 is the timestamp
TIMESTAMP_INSTALL=$2

BACKUP_DIR=/tmp/obm.pkg-${TIMESTAMP_INSTALL}

###############################################################################
#        B A C K - U P            S E T T I N G             F I L E S         #
###############################################################################

echo "Log Time: ${TIMESTAMP_INSTALL}"
echo "Begin Custom Installation for Mindtime Online Backup Pro Manager"

if [ -e "/Applications/Mindtime Pro Backup" ]; then
    echo "/Applications/Mindtime Pro Backup/ exists!"
    echo "Now backup directory /Applications/Mindtime Pro Backup"

    # Backup Required Components

    if [ -e "${BACKUP_DIR}" ]; then
        echo "Remove previous cache"
        rm -rf "${BACKUP_DIR}"
    fi

    mkdir "${BACKUP_DIR}"

    if [ -d "/Applications/Mindtime Pro Backup/log" ]; then
        echo "Backup Scheduler log files"
        mkdir "${BACKUP_DIR}/log"
        cd "/Applications/Mindtime Pro Backup/log"
        mv ./* "${BACKUP_DIR}/log/"
    fi

    if [ -f "/Applications/Mindtime Pro Backup/home.txt" ]; then
        echo "Backup user home setting file"
        mv "/Applications/Mindtime Pro Backup/home.txt" "${BACKUP_DIR}/home.txt"
    fi

    if [ -f "/Applications/Mindtime Pro Backup/config.ini" ]; then
        echo "Backup application config file"
        mv "/Applications/Mindtime Pro Backup/config.ini" "${BACKUP_DIR}/config.ini"
    fi

    # 2012-09-12 : 7300 : alex.cheng : Add migration logic for properties file 'afc.opt' and 'obc.opt'.
    if [ -f "/Applications/Mindtime Pro Backup/afc.opt" ]; then
        echo "Backup application opt file (afc.opt)"
        mv "/Applications/Mindtime Pro Backup/afc.opt" "${BACKUP_DIR}/afc.opt"
    fi

    if [ -f "/Applications/Mindtime Pro Backup/obc.opt" ]; then
        echo "Backup application opt file (obc.opt)"
        mv "/Applications/Mindtime Pro Backup/obc.opt" "${BACKUP_DIR}/obc.opt"
    fi

    # Application Home
    echo "Remove /Applications/Mindtime Pro Backup"
    cd "/Applications/Mindtime Pro Backup"
    rm -rf ./*
else
    echo "/Applications/Mindtime Pro Backup/ does not exist, create Application Home now"
    mkdir "/Applications/Mindtime Pro Backup"
    echo "/Applications/Mindtime Pro Backup/ created"
fi

###############################################################################
#         E X P A N D          A P P L I C A T I O N          D A T A         #
###############################################################################

echo "Extract Application data from $PKG_HOME/Contents/Resources/app-data.tar.gz to /Applications/Mindtime Pro Backup"
tar -zxvf "$PKG_HOME/Contents/Resources/app-data.tar.gz" -C "/Applications/Mindtime Pro Backup"
echo "Application data extracted"

if [ -d "${BACKUP_DIR}" ]; then
    echo "Restore Previous Setting backup"

    if [ -d "${BACKUP_DIR}/log" ]; then
        echo "Restore Scheduler log files"
        mkdir "/Applications/Mindtime Pro Backup/log/"
        cd "/Applications/Mindtime Pro Backup/log/"
        mv -f ${BACKUP_DIR}/log/* .
    fi

    if [ -f "${BACKUP_DIR}/home.txt" ]; then
        echo "Restore user home setting file"
        mv -f "${BACKUP_DIR}/home.txt" "/Applications/Mindtime Pro Backup/home.txt"
    fi

    if [ -f "${BACKUP_DIR}/config.ini" ]; then
        echo "Restore application config file"
        mv -f "${BACKUP_DIR}/config.ini" "/Applications/Mindtime Pro Backup/config.ini"
    fi

    # 2012-09-12 : 7300 : alex.cheng : Add migration logic for properties file 'afc.opt' and 'obc.opt'.
    APP_UTIL_LIB="/Applications/Mindtime Pro Backup/util/lib"
    FILEPATH_UTIL="${APP_UTIL_LIB}/installer-util.jar"
    CLASSNAME_UTIL=PropertiesMigration

    if [ -f "${BACKUP_DIR}/afc.opt" ]; then
        echo "Restore application opt file (afc.opt)"
        FILEPATH_OUTPUT="${BACKUP_DIR}/afc.opt.new"
        FILEPATH_DEFAULT="${BACKUP_DIR}/afc.opt"
        FILEPATH_CUSTOM="/Applications/Mindtime Pro Backup/afc.opt"
        java -cp "${FILEPATH_UTIL}" "${CLASSNAME_UTIL}" "${FILEPATH_OUTPUT}" "${FILEPATH_DEFAULT}" "${FILEPATH_CUSTOM}"
        mv -f "${FILEPATH_OUTPUT}" "${FILEPATH_CUSTOM}"
    fi

    if [ -f "${BACKUP_DIR}/obc.opt" ]; then
        echo "Restore application opt file (obc.opt)"
        FILEPATH_OUTPUT="${BACKUP_DIR}/obc.opt.new"
        FILEPATH_DEFAULT="${BACKUP_DIR}/obc.opt"
        FILEPATH_CUSTOM="/Applications/Mindtime Pro Backup/obc.opt"
        java -cp "${FILEPATH_UTIL}" "${CLASSNAME_UTIL}" "${FILEPATH_OUTPUT}" "${FILEPATH_DEFAULT}" "${FILEPATH_CUSTOM}"
        mv -f "${FILEPATH_OUTPUT}" "${FILEPATH_CUSTOM}"
    fi

    rm -rf "${BACKUP_DIR}"
    echo "Previous Setting backup restored"
fi

echo "Copy Taskkill utility to Application Home"
cp "$PKG_HOME/Contents/Resources/taskkill" "/Applications/Mindtime Pro Backup/bin/taskkill"
echo "Taskkill utility is available at: /Applications/Mindtime Pro Backup/bin/taskkill"

echo "Restore /Applications/Mindtime Pro Backup folder permissions"
chmod -R 775 "/Applications/Mindtime Pro Backup"
echo "Restored default 775 permission at /Applications/Mindtime Pro Backup"

if [ ! -d "/Library/StartupItems" ]; then
    mkdir "/Library/StartupItems"
fi

###############################################################################
#         I N S T A L L         S C H E D U L E R          S E R V I C E      #
###############################################################################

echo "Create StartupItem : Scheduler for Mindtime Online Backup Pro Manager"
mkdir "/Library/StartupItems/MindtimeProBackup"
cd "/Applications/Mindtime Pro Backup/bin/MindtimeProBackup"
cp -R * "/Library/StartupItems/MindtimeProBackup/"
chown -R root:wheel "/Library/StartupItems/MindtimeProBackup"
echo "StartupItem Created at /Library/StartupItems/MindtimeProBackup"

###############################################################################
#       I N S T A L L       A U T O - U P D A T E         S E R V I C E       #
###############################################################################

echo "Create StartupItem : AutoUpdateAgent for Mindtime Online Backup Pro Manager"
mkdir "/Library/StartupItems/MindtimeProBackup-AutoUpdate"
cd "/Applications/Mindtime Pro Backup/aua/bin/MindtimeProBackup-AutoUpdate"
cp -R * "/Library/StartupItems/MindtimeProBackup-AutoUpdate/"
chown -R root:wheel "/Library/StartupItems/MindtimeProBackup-AutoUpdate"
echo "StartupItem Created at /Library/StartupItems/MindtimeProBackup-AutoUpdate"

###############################################################################
#             E N D            O F            I N S T A L L A T I O N         #
###############################################################################

echo "Finished Custom Installation for Mindtime Online Backup Pro Manager"

exit 0
