#!/bin/bash

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

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

#==============================================================================
# Глобальные переменные
#==============================================================================
# Путь к директории конфигураций
declare CONFIGS_DIR_PATH='/etc/astra-mobile'
# Путь к файлу конфигураций
declare SIMCONTROL_CONFIG_PATH="$CONFIGS_DIR_PATH/astra-mobile-simcontrol.ini"

#==============================================================================
# Создание директорий
#==============================================================================
if [ ! -d "$CONFIGS_DIR_PATH" ]; then mkdir -p "$CONFIGS_DIR_PATH"; fi

#==============================================================================
# Конфигурации
#==============================================================================
## iniGetActive
## @brief - Функция вернёт признак активности контроля сим-карт
## @return Вернёт признак активности контроля сим-карт
function iniGetActive() {
    echo $(iniGetValue '%General' 'Active' 'false' "$SIMCONTROL_CONFIG_PATH")
}

## iniSetActive
## @brief - Функция задаст признак активности контроля сим-карт
## @param $1 - Новое значение активности контроля сим-карт
function iniSetActive() {
    local VALUE="$1"
    iniSetValue '%General' 'Active' "$VALUE" "$SIMCONTROL_CONFIG_PATH"
}

## iniGetMode
## @brief - Функция вернёт режим работы контроля сим-карт
## @return Вернёт режим работы контроля сим-карт
function iniGetMode() {
    echo $(iniGetValue '%General' 'Mode' "$WORK_MODE_BLACKLIST" "$SIMCONTROL_CONFIG_PATH")
}

## iniSetMode
## @brief - Функция задаст режим работы контроля сим-карт
## @param $1 - Новое значение режим работы контроля сим-карт
function iniSetMode() {
    local VALUE="$1"
    iniSetValue '%General' 'Mode' "$VALUE" "$SIMCONTROL_CONFIG_PATH"
}

## iniGetSimList
## @brief - Функция вернёт список сим-карт
## @return Вернёт список сим-карт
function iniGetSimList() {
    # Получаем перечень контролируемых sim-карт в виде сырой строки из SIMNAME1:SIMICCID1;SIMNAME2:SIMICCID2;... между разделителями ""
    local Str=$(echo $(iniGetValue '%General' 'SimList' '""' "$SIMCONTROL_CONFIG_PATH") | cut -d'"' -f 2)
    # sed "s/ /_/g" - Заменим проблы на _
    # sed 's/;/\n/g' - Разделем на элементы, разделитель ';'
    # Поместим в массив Array
    local Array=( $(echo $Str | sed "s/ /_/g" | sed "s/;/\n/g") )
    echo ${Array[@]}
}

## iniSetSimList
## @brief - Функция задаст список сим-карт
## @param $1 - Перечень сим-карт в формате SIMNAME1:SIMICCID1
function iniSetSimList() {
    declare -n IN_SIM_LIST=$1
    local VALUE=$(echo ${IN_SIM_LIST[@]} | sed "s/ /;/g" | sed "s/_/ /g" )
    iniSetValue '%General' 'SimList' "\"$VALUE\"" "$SIMCONTROL_CONFIG_PATH"
}
#==============================================================================
