#!/bin/bash

Info () {
title="Info"
author="Peter Starfinger"
mail="E-Mail: info@die-starfingers.de"
year="2024"
app="$(basename $0)"
msgid="The Starbuntu application
<i>\$app</i>
was written by"
info="$(gettext "$msgid" | (export PATH `envsubst --variables "$msgid"`; envsubst "$msgid"))"

yad --center --fixed --title="$title" --window-icon="/usr/share/icons/gnome/48x48/status/info.png" --image="/usr/share/icons/gnome/48x48/status/info.png" --borders=20 --text="$info"$'\n'$'\n'"$author"$'\n'"$mail"$'\n'$'\n'"$year"$'\n' --text-align=center --selectable-labels --button="OK" &
wunwa "$title" > /dev/null; xdotool key Home key Down
}


[ "$1" = "info" ] && Info && exit 0

present="$1"; next="$2"
[ -z "$present" ] && exec-desktop notify-upgradables && exit 0

conseq="$present"$'\n'"$next"

if [ "$next" = "$(echo "$conseq" | sort --version-sort | tail -1)" ] && $(sudoer $USER); then
    user=$(whoami)
    if [[ "$user" != "root" ]]; then
	[[ "$present" =~ v|none ]] && text=$"&#10;    Install new kernel $next?&#10;" || text=$"&#10;    Install new Starbuntu version $next?&#10;"
	button=$"No"
	yad --center --title=$"Install Kernel / Starbuntu" --window-icon="$HOME/.icons/Tux-mini.png" --image="Tux-mini" --borders=20 --text="$text" --button="Info":"$0 info" --button="$button":1 --button="OK":0
	if [ $? -eq 0 ]; then
	    gsu "xterm -e $0 $present $next"; exit 0;
	else
	    exit 1
	fi
    fi
    [[ "$present" =~ v|none ]] && kernel=true || kernel=false
    if $kernel; then
	ubuntu-mainline-kernel -i $next -do
	cd /tmp/ubuntu-mainline-kernel
	image=$(ls linux-image-*); image=${image/.deb}
	mkdir $image
	engrampa -e $image $image.deb
	cd $image/DEBIAN
	sed -i 's~ /usr/share/kernel/.*\.d$~~' *
	cd ../..
	dpkg-deb -b $image
	apt install ./linux-modules-*.deb ./linux-image-*.deb
	apt install ./linux-headers-*all.deb ./linux-headers-*amd64.deb
    else
	locked="$(grep LOCKED /etc/environment)"
	wget die-starfingers.de/Starbuntu/Repository/starbuntu-utils-$next-all.deb
	k=1
	while pgrep -f "apt" > /dev/null; do sleep 1; echo $"Waiting for unblocking ...""     [ $k sec ]"; ((k++)); done
	apt-get install "./starbuntu-utils-$next-all.deb"
	[ -e "/home/benutzer/Starbuntu" ] && chown -R 1000:1000 /usr/local/bin && sed -i 's/Starbuntu /Starprivat /' /lib/os-release
	rm starbuntu-utils-$next-all.deb
	sed -i "s/export LOCKED=.*/$locked/" /etc/environment
	sed -i "s/DOWNLOADED=.*/DOWNLOADED=\"$(date "+%Y-%m-%d %H")\"/" "/etc/environment"
	appmenu-refresh 2>/dev/null && obamenu-refresh &
	cd /tmp
	wget -q die-starfingers.de/Starbuntu/Repository/Latest_Versions
	. Latest_Versions
	j_installed=$(dpkg -l starbuntu-jdk-jre | tail -1 | cut -d\  -f4)
	if [ "$j_latest" != "$j_installed" ]; then
	    wget die-starfingers.de/Starbuntu/Repository/starbuntu-jdk-jre-headless_${j_latest}_amd64.deb
	    apt-get install "./starbuntu-jdk-jre-headless_${j_latest}_amd64.deb"
	    wget die-starfingers.de/Starbuntu/Repository/starbuntu-jdk-jre_${j_latest}_amd64.deb
	    apt-get install "./starbuntu-jdk-jre_${j_latest}_amd64.deb"
	fi
	mv_installed=$(dpkg -l starbuntu-mediathekview | tail -1 | cut -d\  -f4)
	if [ "$mv_latest" != "$mv_installed" ]; then
	    wget die-starfingers.de/Starbuntu/Repository/starbuntu-mediathekview_${mv_latest}_all.deb
	    apt-get install "./starbuntu-mediathekview_${mv_latest}_all.deb"
	fi
    fi
    restore-grub
fi
