#!/bin/bash

#================================================================================
# Инициализация
#================================================================================

# Определяем местоположение скрипта
SCRIPT_PATH=$(dirname "$(readlink -f "$0")")

# Импортируем общие функции
source $SCRIPT_PATH/console_colors
source $SCRIPT_PATH/super_user_check
source $SCRIPT_PATH/errors_func
source $SCRIPT_PATH/simcontrol-functions
source $SCRIPT_PATH/simcontrol-config

# Проверяем права суперпользователя
check_root_rights

#================================================================================
# Functions
#================================================================================

## preparation
## @brief - Функция подготовитблокировку к работе
## @return Вернёт признак успешности операции
function preparation() {
    local result=0

    # При запуске в любом случаи сносим фильтр
    removeDeviceFilter

    if [ $(iniGetActive) != "false" ]; then
        # Функционал контроля сим-карт включён
        sleep 10
        # Ожидаем применение изменений
        mmApplayAndWait
        result=$?
    else
        # Функционал контроля сим-карт отключён
        mmApplay
        result=$?
    fi

    return $result
}

#================================================================================
# main
#================================================================================
globalResult=0

# Выполним подготовку
preparation
globalResult=$?

# Если не возникло ошибок продолжаем обработку
if [ $globalResult -eq 0 ]; then
    # Если контроль сим-карт активирован
    if [ $(iniGetActive) != "false" ]; then
        Mode=$(iniGetMode)

        case $Mode in

        $WORK_MODE_BLACKLIST)
            applySimBlackList
            globalResult=$?
            ;;

        $WORK_MODE_WHITELIST)
            applySimWhiteList
            globalResult=$?
            ;;
        *)
            echo "UNKNOWN MODE: $Mode"
            ;;
        esac
    fi
fi

if [ $globalResult -ne 0 ]; then echoerr "${ERROR_TEXT} An error has occurred! Code: $globalResult"; fi

exit $globalResult
#================================================================================

