#!/bin/bash

INPUT=/tmp/menu.sh.$$

priv_key () {

KEY=$(whiptail --title  "Private key" --nocancel --inputbox  "Введите новый ключ" 10 60 $RDAA_PRIVATE_KEY 3>&1 1>&2 2>&3)

if [ ! $KEY = $RDAA_PRIVATE_KEY ]; then
  sed -i "s|RDAA_PRIVATE_KEY=.*|RDAA_PRIVATE_KEY=$KEY|" /srv/rdaa/service/.env
  sudo systemctl restart rdaa_docker.service
fi
}

while true
do

### reread all before show menu
. /srv/rdaa/service/.env
. /srv/rdaa/service/.uid

uptime=$(uptime --pretty)
os_version=$(cat /srv/rdaa/service/.os_version)
ip="$(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')"
build_version=$(docker inspect -f '{{index .Config.Labels "build_version"}}' ${RDAA_CONTAINER_NAME})
build_tag=$(docker inspect -f '{{index .Config.Labels "build_tag"}}' ${RDAA_CONTAINER_NAME})
rdaa_version=$(docker inspect -f '{{index .Config.Labels "com.rdaa.version"}}' ${RDAA_CONTAINER_NAME})

vol_speaker=$(amixer sget 'Master' | grep -o -E [[:digit:]]+%|head -1)
vol_mic=$(amixer sget 'Capture' | grep -o -E [[:digit:]]+%|head -1)

temp=$(/opt/vc/bin/vcgencmd measure_temp| grep -o '[0-9.]*')

if [ -z "$rdaa_version" ]
then
    version=$build_version
else
    version=$rdaa_version
fi


### display main menu ###
whiptail --clear  --backtitle "Tools for RDA" \
--title "[ RDA - M E N U ]" \
--nocancel \
--menu "Environment: $ENVIRONMENT                   RDOS Version: $os_version\n\
RDA UID: $RDAA_UID                RDA IP: $ip \n\
RDAA Version: $version            RDA Temperature: $temp °C \n\
RDAA Build: $build_version            RDAA Build Tag: $build_tag\n\
Uptime: $uptime \n\
Volume Speaker: $vol_speaker        Volume Microphone: $vol_mic\n\
Choose the TASK" 24 65 11 \
Enter "Войти в RDAA контейнер" \
Logs "Логи RDAA контейнера" \
Restart "Рестарт RDAA контейнера" \
Stop "Стоп RDAA контейнера" \
Start "Старт RDAA контейнера" \
Restore "Восстановить образ RDAA" \
RDAA-Upgrade "Обновить образ RDAA" \
Private-key "Изменить приватный ключ" \
RDDC-Update "Обновить информацию в RDDC" \
Reboot "Перезагрузить RDA" \
Exit "Выйти в консоль" 2>"${INPUT}"

menuitem=$(<"${INPUT}")

case $menuitem in
	Enter) rdaa-exec;;
	Logs) rdaa-log;;
	Restart) rdaa-restart;;
	Stop) rdaa-stop;;
	Start) rdaa-start;;
	Restore) rdaa-restore;;
	RDAA-Upgrade) rdaa-upgrade;;
	Private-key) priv_key;;
	RDDC-Update) rdaa-rddc_update;;
	Reboot) sudo reboot;;
	Exit) echo "Bye"; break;;
esac

done

[ -f $INPUT ] && rm $INPUT
