#!/bin/bash

#================================================================================
# Инициализация
#================================================================================
ENABLED=0
DISABLED=1
NOT_IMPL=-1

#================================================================================
# Функции
#================================================================================
function status_not_mpl() {
    return $NOT_IMPL
}

function status_openconnect_impl() {
    local exit_code=$ENABLED

    if [ -z "$(command -v openconnect)" ]; then
        exit_code=$DISABLED
    else
        local PID="$(pidof openconnect)"
        [[ -z "$PID" ]] && exit_code=$DISABLED || exit_code=$ENABLED
    fi

    return $exit_code
}

function status_vipnet_impl() {
    local exit_code=$ENABLED

    if [ -z "$(command -v vipnetclient)" ]; then
        exit_code=$DISABLED
    else
        local vpn_status="$(vipnetclient info | grep 'VPN status' | awk '{ print $3 }')"
        [[ "$vpn_status" == "On" || "$vpn_status" == "enabled" ]] && exit_code=$ENABLED || exit_code=$DISABLED
    fi

    return $exit_code
}

function status_continent_ap_impl() {
    status_not_mpl
    return $?
}

function status_imitation_impl() {
    local exit_code=$DISABLED

    if [ -f '/tmp/test.vpn' ]; then
        exit_code=$(cat '/tmp/test.vpn')
    fi

    return $exit_code
}

function main() {
#     ВЫБОР РЕАЛИЗАЦИИ
    status_not_mpl
#     status_openconnect_impl
#     status_vipnet_impl
#     status_continent_ap_impl
#     status_imitation_impl

    return $?
}

#================================================================================
# main
#================================================================================
main
exit $?
