#!/usr/bin/env bash
##makedesc: Install omz fancy (powerline10k + MesloLGS font)

set -eo pipefail

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

isMac() { [ "$(uname -s)" = "Darwin" ]; }

install() {
    echo
    echo "==============================================="
    echo "Installing omz fancy: powerline10k + MesloLGS font"
    echo "==============================================="
    echo

    if ! installed zsh || ! installed git; then
        echo "ERROR: you need git and zsh to be installed!" >&2
        exit 1
    fi

    if [[ ! -d "$HOME/.oh-my-zsh" ]]; then
        echo "ERROR: you need omz to be installed!" >&2
        exit 1
    fi

    echo
    echo "1/3 Installing MesloLGS fonts..."
    mkdir -p "$HOME/.local/share/fonts/"
    FONTS_URL="https://github.com/romkatv/powerlevel10k-media/raw/master"
    if installed wget; then
        wget -q --show-progress "$FONTS_URL/MesloLGS%20NF%20Regular.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Regular.ttf"
        wget -q --show-progress "$FONTS_URL/MesloLGS%20NF%20Bold.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Bold.ttf"
        wget -q --show-progress "$FONTS_URL/MesloLGS%20NF%20Italic.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Italic.ttf"
        wget -q --show-progress "$FONTS_URL/MesloLGS%20NF%20Bold%20Italic.ttf" -O "$HOME/.local/share/fonts/MesloLGS NF Bold Italic.ttf"
    else
        curl -fsSL "$FONTS_URL/MesloLGS%20NF%20Regular.ttf" -o "$HOME/.local/share/fonts/MesloLGS NF Regular.ttf"
        curl -fsSL "$FONTS_URL/MesloLGS%20NF%20Bold.ttf" -o "$HOME/.local/share/fonts/MesloLGS NF Bold.ttf"
        curl -fsSL "$FONTS_URL/MesloLGS%20NF%20Italic.ttf" -o "$HOME/.local/share/fonts/MesloLGS NF Italic.ttf"
        curl -fsSL "$FONTS_URL/MesloLGS%20NF%20Bold%20Italic.ttf" -o "$HOME/.local/share/fonts/MesloLGS NF Bold Italic.ttf"
    fi
    if command -v fc-cache >/dev/null 2>&1; then
        fc-cache -vf "$HOME/.local/share/fonts/"
    fi

    echo
    echo "2/3 Installing powerlevel10k theme..."
    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
    sed -i.bak 's#^ZSH_THEME=.*$#ZSH_THEME="powerlevel10k/powerlevel10k"#g' "$HOME/.zshrc"

    echo
    echo "3/3 Installing plugins..."
    git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
    git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
    sed -i.bak 's/^plugins=/plugins=(git laravel docker docker-compose composer zsh-autosuggestions zsh-syntax-highlighting)/g' "$HOME/.zshrc"
    p10k configure

    echo
    echo "Finish! You need to:"
    echo "- review your plugins in $HOME/.zshrc"
    echo "- restart terminal windows to reload fonts and set 'MesloLGS NF Regular' as default font"
    echo "- log out of your session and login again"
    echo
}

case "$1" in
    *) install ;;
esac
