#!/bin/bash
bash $(realpath $(dirname $0))/maneki-logo
menu(){
    dialog --clear --title "Which Chromium do you want?" \
        --menu "Choose one of the following options:" 15 40 4 \
        1 "Chromium (Pacman)" \
        2 "Chromium (Flatpak)" \
        3 "Chromium (Snap)" \
        4 "Exit" 2>&1 >/dev/tty
}

check_flatpak() {
    if ! command -v flatpak &>/dev/null; then
        echo "Flatpak is not installed. Installing flatpak!"
        sudo pacman -S --needed flatpak
        flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
        exit 1
    fi
}

check_snap() {
    if ! command -v snap &>/dev/null; then
        echo "Snap is not installed. Installing snap!"
        sudo pacman -S --needed snapd
        sudo systemctl enable --now snapd.socket
        echo "Snap has been installed and enabled."
        exit 1
    fi
}

while true; do
    choice=$(menu)
    case $choice in
        1)
            echo "Downloading Chromium (Pacman)..."
            sudo pacman -S chromium --noconfirm
            echo -e "\n==> Downloaded and Installed Chromium (Pacman)."
            xdg-settings set default-web-browser chromium.desktop
            echo -e "\nSetting Default Browser to Chromium (Pacman): OK"
            ;;
        2)
            check_flatpak
            echo "Downloading Chromium (Flatpak)..."
            flatpak install flathub org.chromium.Chromium
            echo -e "\n==> Downloaded and Installed Chromium (Flatpak)."
            flatpak set default-web-browser org.chromium.Chromium
            echo -e "\nSetting Default Browser to Chromium (Flatpak): OK"
            ;;
        3)
            check_snap
            echo "Downloading Chromium (Snap)..."
            sudo snap install chromium
            echo -e "\n==> Downloaded and Installed Chromium (Snap)."
            sudo snap set chromium as default-browser
            echo -e "\nSetting Default Browser to Chromium (Snap): OK"
            ;;
        4)
            echo "Exiting..."
            exit 0
            ;;
    esac
done
