#!/usr/bin/env bash
##makedesc: Google Chrome (latest)

set -eo pipefail

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

# https://t.me/axenov_blog/251

dest="$HOME/install/deb"
deb="$dest/google-chrome.deb"
url="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"

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

    echo
    echo "==============================================="
    echo "Installing Google Chrome"
    echo "==============================================="
    echo

    mkdir -p "$dest"
    if installed wget; then
        wget -q --show-progress "$url" -O "$deb"
    else
        curl -fsSL "$url" -o "$deb"
    fi

    sudo dpkg -i "$deb"

    echo
    echo "Finish!"
    google-chrome --version
    echo
}

upgrade() {
    if [ "$(uname -s)" = "Darwin" ]; then
        if installed brew; then
            brew upgrade --cask google-chrome
        fi
        return
    fi

    echo
    echo "==============================================="
    echo "Upgrading Google Chrome"
    echo "==============================================="
    echo

    mkdir -p "$dest"
    if installed wget; then
        wget -q --show-progress "$url" -O "$deb"
    else
        curl -fsSL "$url" -o "$deb"
    fi

    sudo dpkg -i "$deb"

    echo
    echo "Finish!"
    google-chrome --version
    echo
}

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

    echo
    echo "==============================================="
    echo "Removing Google Chrome"
    echo "==============================================="
    echo
    sudo dpkg -r google-chrome-stable
    echo
    echo "Finish!"
    echo
}

case "$1" in
    u|upgrade|update) upgrade ;;
    r|remove|d|delete|p|purge) remove ;;
    *) install ;;
esac
