#!/bin/bash
bash $(realpath $(dirname $0))/maneki-logo
menu(){
    dialog --clear --title "Which Evince do you want?" \
        --menu "Choose one of the following options:" 15 40 5 \
        1 "Evince (Pacman)" \
        2 "Evince (no GNOME) (AUR)" \
        3 "Evince-Git (AUR)" \
        4 "Evince (Flatpak)" \
        5 "Evince (Snap)" \
        6 "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 Evince (Pacman)..."
            sudo pacman -S evince --noconfirm
            echo -e "\n==> Downloaded and Installed Evince (Pacman)."
            ;;
        2)
            echo "Downloading Evince (no GNOME) (AUR)..."
            yay -S evince-no-gnome --noconfirm
            echo -e "\n==> Downloaded and Installed Evince (no GNOME) (AUR)."
            ;;
        3)
            echo "Downloading Evince-Git (AUR)..."
            yay -S evince-git --noconfirm
            echo -e "\n==> Downloaded and Installed Evince-Git (AUR)."
            ;;
        4)
            check_flatpak
            echo "Downloading Evince (Flatpak)..."
            flatpak install flathub org.gnome.Evince
            echo -e "\n==> Downloaded and Installed Evince (Flatpak)."
            ;;
        5)
            check_snap
            echo "Downloading Evince (Snap)..."
            sudo snap install evince
            echo -e "\n==> Downloaded and Installed Evince (Snap)."
            ;;
        6)
            echo "Exiting..."
            exit 0
            ;;
    esac
done
