diff --git a/install2.sh b/install2.sh index 296f0da..59d3ec5 100755 --- a/install2.sh +++ b/install2.sh @@ -1,5 +1,4 @@ -#!/usr/bin/bash -E -# shellcheck disable=all +#!/usr/bin/env bash ## CONSTANTS @@ -7,11 +6,23 @@ 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 upgrade { + source_miaou_lib self_upgrade +} + +function install { + [[ "$UID" -ne 0 ]] && sudo -vp 'SUDO privilege required: ' + + MIAOU_BASH_DIR=/opt/miaou-bash + export MIAOU_BASH_DIR + cd /tmp + + curl -sO $MAIN_TAR_GZ_URL + sudo tar -xzf main.tar.gz --directory $(dirname "$MIAOU_BASH_DIR") + source_miaou_lib initiate + + source /etc/profile + echo "miaou-bash successfully installed" } function assert_supported_distro { @@ -25,26 +36,19 @@ function assert_supported_distro { } function once_installed { - [[ -d "$MIAOU_BASH_DIR" && + [[ -v MIAOU_BASH_DIR && -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]] } +function source_miaou_lib { + . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/"$1".bash" +} + ## MAIN -set -Eeuo pipefail +# source <(curl -s https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install2.sh) +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 +once_installed && upgrade || install