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.

57 lines
1.3 KiB

#!/usr/bin/env bash
## CONSTANTS
readonly MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz"
readonly DESTINATION=/opt/miaou-bash
readonly REQUIRED_PKGS=(file jq)
## FUNCTIONS
function push_directory {
pushd "$1" || (echo "unable to push directory <$1>" && exit 1)
}
function pop_directory {
popd || (echo "unable to pop from previous directory" && exit 1)
}
## MAIN
[[ "$UUID" -ne 0 ]] && echo 'root privilege required' && exit 1
if [[ -v MIAOU_BASH_DIR ]]; then
miaou-bash "$MIAOU_BASH_DIR/init.sh"
else
MIAOU_BASH_DIR="$DESTINATION"
export MIAOU_BASH_DIR
cd "$(mktemp -d)"
curl --no-progress-meter -O $MAIN_TAR_GZ_URL
fi
if [[ $PWD != "$DESTINATION" ]]; then
# download and fullfill /opt/miaou-bash, then run it from folder
if [[ -L /opt/miaou-bash ]]; then
/opt/miaou-bash/install.sh
else
rm -rf "$DESTINATION"
pushd "$(mktemp -d)"
curl --no-progress-meter -O $MAIN_TAR_GZ_URL
tar -xzf main.tar.gz
mv miaou-bash /opt/
pop_directory
rm -rf "$TEMP"
push_directory /opt/miaou-bash && ./install.sh
fi
else
MIAOU_BASH_DIR=$CURDIR
export MIAOU_BASH_DIR
source "$MIAOU_BASH_DIR/lib/functions.bash"
"$MIAOU_BASH_DIR/tools/idem_apt_install" "${REQUIRED_PKGS[@]}"
./init.sh
fi