Install Kool.dev CLI Tool

$

The install process will run the following shell script:

#!/usr/bin/env bash

set -euo pipefail

echo -e "Hello, we are gonna install the \033[33mlatest stable\033[39m version of Kool!"

DEFAULT_DOWNLOAD_URL="https://github.com/kool-dev/kool/releases/latest/download"
if [ -z "${DOWNLOAD_URL:-}" ]; then
	DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL
fi

DEFAULT_BIN="/usr/local/bin/kool"
if [ -z "${BIN_PATH:-}" ]; then
	BIN_PATH=$DEFAULT_BIN
fi

is_darwin() {
	case "$(uname -s)" in
	*darwin* ) true ;;
	*Darwin* ) true ;;
	* ) false;;
	esac
}

do_install () {
	ARCH=$(uname -m)
	PLAT="linux"

	if is_darwin; then
		PLAT="darwin"
	fi

	if [ "$ARCH" == "x86_64" ]; then
		ARCH="amd64"
	fi

	if [ "$ARCH" == "aarch64" ]; then
		ARCH="arm64"
	fi

	echo "Downloading latest binary (kool-$PLAT-$ARCH)..."

    rm -f /tmp/kool_binary
	
	# fallback to wget if no curl available
    if command -v curl &> /dev/null; then
        curl -fsSL "$DOWNLOAD_URL/kool-$PLAT-$ARCH" -o /tmp/kool_binary
    elif command -v wget &> /dev/null; then
        wget -qO /tmp/kool_binary "$DOWNLOAD_URL/kool-$PLAT-$ARCH"
    else
        echo -e "\033[31;31mError: Neither curl nor wget is available. Please install one of them to proceed.\033[0m"
        exit 1
    fi

	# check for running kool process which would prevent
	# replacing existing version under Linux.
	if [ command -v kool &> /dev/null ]; then
		if [ ! is_darwin ]; then
			running=$(ps aux | grep kool | grep -v grep | wc -l | awk '{ print $1 }')
			if [ "$running" != "0" ]; then
				echo -e "\033[31;31mThere is a kool process still running. You might need to stop them before we replace the current binary.\033[0m"
			fi
		fi
	fi

	echo -e "Moving kool binary to $BIN_PATH..."
	if [ -w $(dirname $BIN_PATH) ]; then
		mv -f /tmp/kool_binary $BIN_PATH
		chmod +x $BIN_PATH
	else
		echo "(requires sudo)"
		sudo mv -f /tmp/kool_binary $BIN_PATH
		sudo chmod +x $BIN_PATH
	fi

	start_success="\033[0;32m"
	end_success="\033[0m"
	start_error="\033[1;31m"
	end_error="\033[0m"

	if ! command -v docker &> /dev/null; then
		builtin echo -e "${start_error}We could not identify the Docker installed.${end_error}"
		builtin echo -e "Please refer to the official documentation to get it: https://docs.docker.com/get-docker/"
		exit
	fi

	composeVersion=$(docker compose version || true)
	if [[ ! "$composeVersion" == *"Docker Compose version v2"* ]]; then
		builtin echo -e "${start_error}We could not identify Composer V2 installed.${end_error}"
		builtin echo -e "Please make sure you are running an updated Docker version that includes Compose V2:"
		builtin echo -e "  Official Docker installation documentation: https://docs.docker.com/get-docker/"
		builtin echo -e "  Official Docker Compose V2 documentation: https://docs.docker.com/compose/reference/"
		exit
	fi

	# success
	builtin echo -e "${start_success}$(kool -v) installed successfully.${end_success}"
}

do_install
kool.dev
By choosing "Accept all cookies" you agree to the use of cookies to help us provide you with a better user experience and to analyse website usage. Only the essential cookies are necessary for the proper functioning of our website and cannot be refused.
Check out our Cookie Policy and Privacy Policy for more information.