#!/usr/bin/env bash
##makedesc: Install Vivaldi + ppa

set -eo pipefail

installed() { command -v "$1" >/dev/null 2>&1; }

doInstall() {
    if [ "$(uname -s)" = "Darwin" ]; then
        if installed brew; then
            brew install --cask vivaldi
        else
            echo "ERROR: Install Homebrew first." >&2
            exit 1
        fi
        return
    fi

    echo
    echo "==============================================="
    echo "Installing Vivaldi"
    echo "==============================================="
    echo

    # https://repo.vivaldi.com
    # https://help.vivaldi.com/desktop/#install-update

    if installed wget; then
        wget -qO- https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor > packages.vivaldi.gpg
    else
        curl -fsSL https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor > packages.vivaldi.gpg
    fi
    sudo install -o root -g root -m 644 packages.vivaldi.gpg /etc/apt/trusted.gpg.d
    sudo sh -c 'echo "deb [arch=amd64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.vivaldi.gpg] https://repo.vivaldi.com/archive/deb stable main" > /etc/apt/sources.list.d/vivaldi.list'
    rm -f packages.vivaldi.gpg

    sudo apt update
    sudo apt install -y vivaldi-stable

    echo
    echo "Finish!"
    echo
}

remove() {
    if [ "$(uname -s)" = "Darwin" ]; then
        if installed brew; then
            brew uninstall --cask vivaldi
        fi
        return
    fi

    echo
    echo "==============================================="
    echo "Removing Vivaldi"
    echo "==============================================="
    echo

    sudo apt remove -y vivaldi-stable
    sudo rm -rf \
        /usr/share/keyrings/vivaldi-browser.gpg \
        /etc/apt/sources.list.d/vivaldi-archive.list \
        /etc/apt/sources.list.d/vivaldi.list
    sudo apt update

    echo
    echo "Finish!"
    echo
}

case "$1" in
    r|remove|d|delete|p|purge) remove ;;
    *) doInstall ;;
esac
