#!/usr/bin/bash -E # shellcheck disable=all ## CONSTANTS MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz" ## FUNCTIONS function bootstrap { cd "$(mktemp -d)" || exit 3 curl -s -O $MAIN_TAR_GZ_URL tar -xzf main.tar.gz --directory $(dirname "$MIAOU_BASH_DIR") . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/initiate.bash" } function assert_supported_distro { if ! grep -E '^ID=debian|^ID_LIKE=debian' /etc/os-release && ! grep -E '^ID=arch|^ID_LIKE=arch' /etc/os-release; then local distro=$(grep -oP '^ID=\K(.*)' /etc/os-release) >&2 echo "unsupported GNU/Linux distribution: $distro" >&2 echo 'only debian-like OR arch-like currently supported' exit 2 fi } function once_installed { [[ -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]] } ## MAIN set -Eeuo pipefail assert_supported_distro deployment_type_adjective="${1:-installed}" [[ ! -v MIAOU_BASH_DIR ]] && MIAOU_BASH_DIR=/opt/miaou-bash && export MIAOU_BASH_DIR if [[ "$UID" -ne 0 ]]; then sudo -vp 'root privilege required (SUDO): ' curl -s https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install2.sh | sudo bash source /etc/profile elif once_installed; then . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash" else bootstrap echo "miaou-bash successfully $deployment_type_adjective" fi