#!/bin/bash

export CURRENT_KERNEL=$( uname -r )

whiptail --title "Текущее ядро"  --msgbox  ${CURRENT_KERNEL} 0 0
#-------------------------------------------------------------------------

Kernel_1 () {
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/5.19/linux-headers-_5.19.16-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/5.19/linux-image-_5.19.16-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/5.19/linux-libc-dev_5.19.16-2_arm64.deb
  dpkg -i /tmp/linux-image-_5.19.16-2_arm64.deb
  dpkg -i /tmp/linux-libc-dev_5.19.16-2_arm64.deb
  dpkg -i /tmp/linux-headers-_5.19.16-2_arm64.deb

    if (whiptail --title "Чтобы изменения вступили в силу необходимо перезагрузить Repka-pi3" --yesno "Перезагрузить ?" 10 80) then
    echo "Перезагружаем $?."
      reboot
else
     return 0
fi
}

Kernel_2 () {
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1/linux-image-_6.1.11-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1/linux-headers-_6.1.11-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1/linux-libc-dev_6.1.11-2_arm64.deb
  dpkg -i /tmp/linux-image-_6.1.11-2_arm64.deb
  dpkg -i /tmp/linux-headers-_6.1.11-2_arm64.deb
  dpkg -i /tmp/linux-libc-dev_6.1.11-2_arm64.deb

    if (whiptail --title "Чтобы изменения вступили в силу необходимо перезагрузить Repka-pi3" --yesno "Перезагрузить ?" 10 80) then
    echo "Перезагружаем $?."
      reboot
else
    return 0
fi


}

Kernel_3 () {
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1-rt/linux-image-_6.1.11-rt7-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1-rt/linux-headers-_6.1.11-rt7-2_arm64.deb
  wget -nd -P /tmp https://download.repka-pi.ru/kernel/6.1-rt/linux-libc-dev_6.1.11-rt7-2_arm64.deb
  dpkg -i /tmp/linux-image-_6.1.11-rt7-2_arm64.deb
  dpkg -i /tmp/linux-headers-_6.1.11-rt7-2_arm64.deb
  dpkg -i /tmp/linux-libc-dev_6.1.11-rt7-2_arm64.deb

    if (whiptail --title "Чтобы изменения вступили в силу необходимо перезагрузить Repka-pi3" --yesno "Перезагрузить ?" 10 80) then
    echo "Перезагружаем $?."
      reboot
else
    return 0
fi


}


#------------------------------------------------------------------------
case $CURRENT_KERNEL in
"5.19.16" | "5.19.16-sunxi64")
  RADIO_LIST=("Kernel-1 " "5.19.16-sunxi64" "ON"\
              	"Kernel-2 " "6.1.11-sunxi64" "OFF"\
              	"Kernel-3 " "6.1.11-rt7-sunxi64 (с патчем PREEMPT_RT)" "OFF");;
"6.1.11" | "6.1.11-sunxi64")
  RADIO_LIST=("Kernel-1 " "5.19.16-sunxi64" "OFF"\
                	"Kernel-2 " "6.1.11-sunxi64" "ON"\
                	"Kernel-3 " "6.1.11-rt7-sunxi64 (с патчем PREEMPT_RT)" "OFF");;
"6.1.11-rt7" | "6.1.11-rt7-sunxi64")
  RADIO_LIST=("Kernel-1 " "5.19.16-sunxi64" "OFF"\
                  	"Kernel-2 " "6.1.11-sunxi64" "OFF"\
                  	"Kernel-3 " "6.1.11-rt7-sunxi64 (с патчем PREEMPT_RT)" "ON");;
*)
  RADIO_LIST=("Kernel-1 " "5.19.16-sunxi64" "OFF"\
                    	"Kernel-2 " "6.1.11-sunxi64" "OFF"\
                    	"Kernel-3 " "6.1.11-rt7-sunxi64 (с патчем PREEMPT_RT)" "OFF");;
esac


    FUN=$(whiptail --title "Repka Pi утилита для настройки (repka-config)" \
    --radiolist "Установка ядра Linux:\n1) Выберите нужное вам ядро, нажав на пробел.\n2) После чего нажмите Enter для установки." 20 80 8 \
    --cancel-button "Назад/Back" --ok-button "Выбрать/Select" \
      "${RADIO_LIST[@]}" \
      3>&1 1>&2 2>&3)

  RET=$?

  if [ $RET -eq 1 ] || [ $RET -eq 255 ]; then
    return 0
  elif [ $RET -eq 0 ]; then
    case "$FUN" in
      Kernel-1\ *)   Kernel_1 ;;
      Kernel-2\ *)   Kernel_2 ;;
      Kernel-3\ *)   Kernel_3 ;;
      *) whiptail --msgbox "Programmer error: unrecognized option" 20 60 1 || return 0;;
    esac || whiptail --msgbox "There was an error running option $FUN" 20 60 1 || return 0
  fi


#-------------------------------------------------------------------------------------------------------------



