MIAOU-BASH is a collection of settings and helpers for leveraging BASH. Developer-friendly, it may be used as solo package with or without the miaou project.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.0 KiB

#!/usr/bin/bash -E
## CONSTANTS
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
readonly MIAOU_BASH_DIR=/opt/miaou-bash
## 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)"
echo "miaou-bash deployed to: $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
[[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1
! assert_supported_distro && echo 'unsupported distro: debian-like OR arch-like expected' && exit 2
export MIAOU_BASH_DIR
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/init.bash"
echo "miaou-bash successfully installed"
fi