#!/bin/bash set -eu # Проверка наличия файла с переменными .env if [[ ! -f ".env" ]]; then echo "Ошибка - отсутствует файл с переменными .env" exit 1 fi # Входные переменные берём из .env source .env # Проверка заполнения переменной SELECTEL_API_KEY if [[ -z "${SELECTEL_API_KEY}" ]]; then echo "Ошибка - пустой SELECTEL_API_KEY (${SELECTEL_API_KEY})" exit 2 #else # echo "SELECTEL_API_KEY=${SELECTEL_API_KEY}" fi # Проверка заполнения переменной MIN_BALANCE if [[ -z "${MIN_BALANCE}" ]]; then echo "Ошибка - пустой MIN_BALANCE (${MIN_BALANCE})" exit 3 #else # echo "MIN_BALANCE=${MIN_BALANCE}" fi # Получаем баланс ANSWER=$(curl -s -H "X-token: ${SELECTEL_API_KEY}" -H "Content-Type: application/json" https://my.selectel.ru/api/v3/billing/balance) #echo "ANSWER=${ANSWER}" # Проверяем прошла ли авторизация if [[ ! -z $(echo ${ANSWER} | grep "401 Authorization Required") ]]; then echo "Ошибка - не пройдена авторизация на SELECTEL (${ANSWER})" exit 4 else BALANCE=$(echo ${ANSWER} | jq '.data.primary.main') # echo "BALANCE=${BALANCE}" fi # Проверка заполнения переменной BALANCE if [[ -z "${BALANCE}" ]]; then echo "Ошибка - не получен BALANCE (${BALANCE})" exit 4 #else # echo "BALANCE=${BALANCE}" fi # Подготавливаем переменные BALANCE_RUB и MIN_BALANCE_RUB BALANCE_RUB=$(echo ${BALANCE} | rev); BALANCE_RUB=${BALANCE_RUB:0:2}.${BALANCE_RUB:2}; BALANCE_RUB=$(echo $BALANCE_RUB | rev) MIN_BALANCE_RUB=$(echo ${MIN_BALANCE} | rev); MIN_BALANCE_RUB=${MIN_BALANCE_RUB:0:2}.${MIN_BALANCE_RUB:2}; MIN_BALANCE_RUB=$(echo $MIN_BALANCE_RUB | rev) # Сравниваем BALANCE с MIN_BALANCE if [[ "${BALANCE}" -le "${MIN_BALANCE}" ]]; then echo "Баланс на Selectel нужно пополнить (${BALANCE_RUB} руб. < ${MIN_BALANCE_RUB} руб.)" else echo "Баланс на Selectel достаточен (${BALANCE_RUB} руб. > ${MIN_BALANCE_RUB} руб.)" fi # Выход exit 0