#!/usr/bin/env bash

### Constants
readonly CLIENT_TOOL="MXB/bin/ClientTool"
readonly CONFIG_FILE_PATH="/opt/MXB/etc/config.ini"

. "MXB/sbin/ui_utils-fp.sh"
. "MXB/sbin/ct_utils-fp.sh"

# Arguments:
# $1: Package name string to be filled
# $@:2: arguments to be parsed
get_package_name_from_arguments()
{
    local packageNameRef=$1
    shift 1

    while [ $# -gt 0 ]; do
        local arg="$1"
        shift

        local argName="${arg%%=*}"
        local argValue="${arg#*=}"
        [ -z "${argName}" ] && argName="${arg}"

        case "${argName}" in
        --package-name)
            local _packageName="$(basename "${argValue}" ".run")"
            eval "${packageNameRef}=\"${_packageName}\""
            break
            ;;
        esac
    done
}

main()
{
    if [ "$(id -u)" != "0" ]; then
        print_error "This script should be run by root (which you are not)"
        return 1
    fi

    print_header_message "REINSTALL/UPDATE BACKUP MANAGER"

    local packageName=""
    get_package_name_from_arguments packageName "$@"

    local updateType="$(echo "${packageName}" | awk -F '#' '{print $3}')"

    if [ "${updateType}" != "binariesonly" ]; then
        alert_user "Incorrect update type. Please download the package again."
        return 1
    fi

    client_tool_is_device_configured "${CONFIG_FILE_PATH}" >/dev/null || return $?

    client_tool_install_wizard_disable "${CONFIG_FILE_PATH}" >/dev/null || return $?
}

main "$@"
