#!/bin/bash

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

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

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

# Зададим модули
modules=('iwlwifi')
# Получаем задаваемый режим
mode=$(echo $1 | tr '[:lower:]' '[:upper:]')

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

for module_name in ${modules[@]}
do
    if [ $globalResult -ne 0 ]; then break; fi

    if [[ "$mode" == "$MODE_EXISTS" ]]; then
        print_module_exists "$module_name"
    else
        # Настроим возможность загрузки модуля при старте системы
        $SCRIPT_PATH/switch_kernel_module_boot "$module_name" "$mode"
        globalResult=$?

        if [ $globalResult -eq 0 ]; then
            # Загрузим или выгрузим модуль системы в райнтайме
            $SCRIPT_PATH/switch_kernel_module_runtime "$module_name" "$mode"
#           globalResult=$?
#           Система может запретить выгрузку модуля в рантайме.
#           Т.К. Мы в любом случаи требуем ребут для применения блокировок, не имеет смысла возвращать результат выгрузки модуля
        fi
    fi
done

# При успешном переключении состояния пишем изменение в конфигурационный файл
if [[ $globalResult -eq 0 && "$mode" == @($MODE_ON|$MODE_OFF) ]]; then
    iniSetActive "wifi_is_active" $([[ "$mode" == "$MODE_ON" ]] && echo 'true' || echo 'false')
fi

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