#!/usr/bin/env bash
##makedesc: Install tilt (k8s dev env)

set -eo pipefail

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

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

install() {
    echo
    echo "==============================================="
    echo "Installing tilt"
    echo "==============================================="
    echo

    mkdir -p ~/install/tilt ~/.local/bin

    if isMac; then
        if installed brew; then
            brew install kubectl tilt-dev/tap/ctlptl tilt-dev/tap/tilt
        else
            echo "ERROR: Install Homebrew first." >&2
            exit 1
        fi
    else
        cd ~/install/tilt

        KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
        curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
        curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl.sha256"
        echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
        chmod +x kubectl
        cp ./kubectl ~/.local/bin/kubectl

        CTLPTL_URL=$(curl -s "https://api.github.com/repos/tilt-dev/ctlptl/releases/latest" \
            | jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
        curl -fsSL "$CTLPTL_URL" | tar -xz -C ~/.local/bin ctlptl

        TILT_URL=$(curl -s "https://api.github.com/repos/tilt-dev/tilt/releases/latest" \
            | jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
        curl -fsSL "$TILT_URL" | tar -xz -C ~/.local/bin tilt
    fi

    echo
    echo "Finish!"
    echo "ctlptl version = $(ctlptl version)"
    echo "tilt version = $(tilt version)"
    echo "kubectl version:"
    kubectl version
    echo
}

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