#!/bin/sh

# Function to run a task with error handling
run_task() {
    local step="$1"
    local label="$2"
    shift 2

    # Displaying task label in progress dialog
    qdbus-qt5 $dbusRef setLabelText "$label"

    # Executing task command and handling errors
    if eval "$@"; then
        # If the task succeeds, update the progress bar
        qdbus-qt5 $dbusRef Set "" value "$step"
    else
        # If the task fails, display an error message and exit
        kdialog --error "Operation Failed: $label"
        exit 1
    fi
}

# Initialize progress dialog
dbusRef=$(kdialog --title "openSUSE AtropOS Desktop Firstboot" --geometry 600x400 --progressbar "openSUSE AtropOS Desktop Firstboot" 8)

# Execute each task

run_task 1 "Waiting for Internet connection" 'until /usr/bin/ping -q -c 1 flathub.org; do sleep 1; done'
run_task 2 "Adding Flathub Repository" /usr/bin/flatpak remote-add --user --if-not-exists flathub /usr/share/microos-desktop/flathub.flatpakrepo
run_task 3 "Installing Firefox" /usr/bin/flatpak install --user --noninteractive flathub org.mozilla.firefox
run_task 4 "Installing KCalc" /usr/bin/flatpak install --user --noninteractive flathub org.kde.kcalc
run_task 5 "Installing Ark" /usr/bin/flatpak install --user --noninteractive flathub org.kde.ark
run_task 6 "Installing KWrite" /usr/bin/flatpak install --user --noninteractive flathub org.kde.kwrite
run_task 7 "Installing Okular" /usr/bin/flatpak install --user --noninteractive flathub org.kde.okular
run_task 8 "Installing Gwenview" /usr/bin/flatpak install --user --noninteractive flathub org.kde.gwenview
run_task 9 "Installing Haruna" /usr/bin/flatpak install --user --noninteractive flathub org.kde.haruna
run_task 10 "Installing Yakuake" /usr/bin/flatpak install --user --noninteractive flathub org.kde.yakuake
run_task 11 "Installing KolourPaint" /usr/bin/flatpak install --user --noninteractive flathub org.kde.kolourpaint
run_task 12 "Installing Ferdium" /usr/bin/flatpak install --user --noninteractive flathub org.ferdium.Ferdium
run_task 13 "Installing Steam" /usr/bin/flatpak install --user --noninteractive flathub com.valvesoftware.Steam


run_task 14 "Setting Default Browser" kwriteconfig5 --file ~/.config/kdeglobals --group General --key BrowserApplication org.mozilla.firefox.desktop

run_task 15 "Cleaning up" rm -f ~/.config/autostart/kalpa-firstboot.desktop

qdbus-qt5 $dbusRef close

