diff --git a/install2.sh b/install2.sh new file mode 100755 index 0000000..8f23bfb --- /dev/null +++ b/install2.sh @@ -0,0 +1,41 @@ +#!/usr/bin/bash -E + +## 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)" +} + +function assert_supported_distro { + grep -E '^ID=debian|^ID_LIKE=debian' /etc/os-release || + grep -E '^ID=arch|^ID_LIKE=arch' /etc/os-release +} + +## MAIN + +set -Eeuo pipefail + +! assert_supported_distro && echo 'unsupported distro: debian-like OR arch-like expected' && exit 2 +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 '$0' "$deployment_type_adjective" + exec bash -l +else + if [[ -d "$MIAOU_BASH_DIR" && -L /etc/inputrc && "$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]]; then + . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/self-upgrade.bash" + else + bootstrap + . "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR/lib/initiate.bash" + echo "miaou-bash successfully $deployment_type_adjective" + exec bash -l + fi +fi