#!/bin/sh

###############################################
# FUNCTIONS AND VARS
###############################################

OXI_INSTALL_DIR_NAME="@Oxibackup"
INSTALL_DIR="$SYNOPKG_PKGDEST_VOL/$OXI_INSTALL_DIR_NAME"
OXIBACKUP_SUB_DIR="$INSTALL_DIR/opt/oxibackup"
OXIBACKUP_OPT_DIR="/opt/oxibackup"

if [ -z "$HOME" ]
then
    HOME="/root"
fi

# Echo in debug file
_echodebug () {
    echo "$1" >> "/var/log/oxibackup_install.log"
}

###############################################

CURRENT_DATE=$(date)
_echodebug "Post-uninstallation started at $CURRENT_DATE"

###############################################


###############################################
# REMOVE FILES
###############################################

# Sym links
if [ -L "/usr/bin/oxibackup-configure" ]
then
    rm -f "/usr/bin/oxibackup-configure" > /dev/null 2>&1
fi
if [ -L "/usr/bin/oxibackup-control" ]
then
    rm -f "/usr/bin/oxibackup-control" > /dev/null 2>&1
fi
if [ -L "/usr/bin/oxibox-registration" ]
then
    rm -f "/usr/bin/oxibox-registration" > /dev/null 2>&1
fi

# /opt/oxibackup/bin
rm -f "$OXIBACKUP_SUB_DIR/bin/oxibackupd-configure" "$OXIBACKUP_SUB_DIR/bin/oxibackupd-control" "$OXIBACKUP_SUB_DIR/bin/oxibackupd-service" > /dev/null 2>&1
rm -f "$OXIBACKUP_SUB_DIR/bin/oxibox-registration" "$OXIBACKUP_SUB_DIR/bin/oxibackupd" > /dev/null 2>&1
rmdir "$OXIBACKUP_SUB_DIR/bin" > /dev/null 2>&1

# /opt/oxibackup/tmp
rm -rf "$OXIBACKUP_SUB_DIR/tmp" > /dev/null 2>&1

# Remove link or mount
if [ -L "$OXIBACKUP_OPT_DIR" ]
then
    rm -f "$OXIBACKUP_OPT_DIR" > /dev/null 2>&1
else
    fusermount -u "$OXIBACKUP_OPT_DIR" > /dev/null 2>&1
    rmdir "$OXIBACKUP_OPT_DIR" > /dev/null 2>&1
fi

# Remove startup script
rm "/usr/local/etc/rc.d/oxibackup.sh"

. "$OXIBACKUP_SUB_DIR/etc/oxibackupd/service.conf" > /dev/null 2>&1
. "$OXIBACKUP_SUB_DIR/etc/oxibackupd/config/oxibackupd.conf" > /dev/null 2>&1

# /opt/oxibackup/etc
rm -f "$OXIBACKUP_SUB_DIR/etc/oxibackupd/config/oxibackupd.conf" > /dev/null 2>&1
rmdir "$OXIBACKUP_SUB_DIR/etc/oxibackupd/config" > /dev/null 2>&1
rm -f "$OXIBACKUP_SUB_DIR/etc/oxibackupd/service.conf" > /dev/null 2>&1
rmdir "$OXIBACKUP_SUB_DIR/etc/oxibackupd" > /dev/null 2>&1
rmdir "$OXIBACKUP_SUB_DIR/etc" > /dev/null 2>&1

if [ "$SYNOPKG_PKG_STATUS" = "UNINSTALL" ]
then
    # /opt/oxibackup/var
    rm -rf "$OXIBACKUP_SUB_DIR/var/cache/oxibackup" > /dev/null 2>&1
    rmdir "$OXIBACKUP_SUB_DIR/var/cache" > /dev/null 2>&1
    rmdir "$OXIBACKUP_SUB_DIR/var" > /dev/null 2>&1
    if [ -L "$HOME/.cache/oxibackup" ]
    then
        rm -f "$HOME/.cache/oxibackup" > /dev/null 2>&1
    fi

    if [ ! -z "$OXIBACKUP_CONFIG_DIR" ]
    then
        if [ ! -z "$AUTH_FILE" ]
        then
            rm -f "$AUTH_FILE" > /dev/null 2>&1
        fi
        rm -f "$OXIBACKUP_CONFIG_DIR/backup.conf" > /dev/null 2>&1
        rmdir "$OXIBACKUP_CONFIG_DIR" > /dev/null 2>&1
    fi

    if [ ! -z "$SSH_KEY_DIR" ]
    then
        if [ ! -z "$SSH_KEY_FILE" ]
        then
            rm -f "$SSH_KEY_FILE" > /dev/null 2>&1
            rm -f "$SSH_KEY_FILE.pub" > /dev/null 2>&1
        fi
        rmdir "$SSH_KEY_DIR" > /dev/null 2>&1
    fi

    rm -f "$OXIBACKUP_USER_DIR/backuplock" > /dev/null 2>&1

    # Remove log files
    rm -f "$OXIBACKUP_USER_DIR/log/oxibackupd"*".log"* > /dev/null 2>&1
    rm -f "$OXIBACKUP_USER_DIR/log/backups.log" > /dev/null 2>&1
    if [ ! -z "$LOG_DIR" ]
    then
        rm -f "$LOG_DIR/latest_lock_attempt.log" > /dev/null 2>&1
        rm -f "$LOG_DIR/${LOG_FILE_NAME}"*".log"* > /dev/null 2>&1
        rmdir "$LOG_DIR" > /dev/null 2>&1
    fi

    rmdir "$OXIBACKUP_USER_DIR" > /dev/null 2>&1

    rm -f "/root/.oxibackup" > /dev/null 2>&1
    rmdir "$OXIBACKUP_SUB_DIR/root/.oxibackup" > /dev/null 2>&1
    rmdir "$OXIBACKUP_SUB_DIR/root" > /dev/null 2>&1

fi

rmdir "$OXIBACKUP_SUB_DIR" > /dev/null 2>&1
rmdir "$INSTALL_DIR/opt" > /dev/null 2>&1
rmdir "$INSTALL_DIR" > /dev/null 2>&1

exit 0
