#!/bin/bash ABRA_VERSION="9.0.0" GIT_URL="https://git.autonomic.zone/coop-cloud/abra" ABRA_SRC="$GIT_URL/raw/tag/$ABRA_VERSION/abra" ABRA_DIR="${ABRA_DIR:-$HOME/.abra}" function prompt_confirm { read -rp "Continue? [y/N]? " choice case "$choice" in y|Y ) return ;; * ) exit;; esac } function show_banner { echo "" echo " ____ ____ _ _ " echo " / ___|___ ___ _ __ / ___| | ___ _ _ __| |" echo " | | / _ \ _____ / _ \| '_ \ | | | |/ _ \| | | |/ _' |" echo " | |__| (_) |_____| (_) | |_) | | |___| | (_) | |_| | (_| |" echo " \____\___/ \___/| .__/ \____|_|\___/ \__,_|\__,_|" echo " |_|" echo "" } function install_docker { sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io } function install_requirements { if [ -f "/etc/debian_version" ]; then echo "Installing curl..." sudo apt install -y curl echo "Install Docker (hard requirement)?" echo "Follows the commands listed in https://docs.docker.com/engine/install/debian/" prompt_confirm echo "Installing Docker..." install_docker else echo "Sorry, we only support Debian at the moment" echo "You'll have to install the requirements manually for your distribution" echo "See https://git.autonomic.zone/coop-cloud/abra#requirements for more" fi } function install_abra_release { mkdir -p "$HOME/.local/bin" curl "$ABRA_SRC" > "$HOME/.local/bin/abra" chmod +x "$HOME/.local/bin/abra" echo "abra installed to $HOME/.local/bin/abra" } function install_abra_dev { mkdir -p "$ABRA_DIR/" if [[ ! -d "$ABRA_DIR/src" ]]; then git clone "$GIT_URL" "$ABRA_DIR/src" fi (cd "$ABRA_DIR/src" && git pull origin main && cd - || exit) mkdir -p "$HOME/.local/bin" ln -sf "$ABRA_DIR/src/abra" "$HOME/.local/bin/abra" echo "abra installed to $HOME/.local/bin/abra (development bleeding edge)" } function run_installation { show_banner if [ "$1" = "--dev" ]; then install_abra_dev else install_abra_release fi install_requirements } run_installation "$@" exit 0