3 changed files with 51 additions and 92 deletions
-
2README.md
-
75install.sh
-
66install2.sh
@ -1,40 +1,65 @@ |
|||
#!/usr/bin/bash -E |
|||
|
|||
#!/usr/bin/env bash |
|||
## CONSTANTS |
|||
|
|||
#TODO: LATEST_TAG |
|||
# LATEST_TAG=$(curl -s https://git.artcode.re/api/v1/repos/miaou/miaou-bash/tags|grep -oPm1 '{"name":".*?",' | head -n1 | cut -d'"' -f4) |
|||
# https://git.artcode.re/miaou/miaou-bash/archive/0.3.109.tar.gz |
|||
|
|||
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 upgrade { |
|||
echo UPGRADE |
|||
execute_miaou_lib self-upgrade |
|||
} |
|||
|
|||
function assert_supported_distro { |
|||
grep -E '^ID=debian|^ID_LIKE=debian' /etc/os-release || |
|||
grep -E '^ID=arch|^ID_LIKE=arch' /etc/os-release |
|||
function install { |
|||
echo INSTALL |
|||
MIAOU_BASH_DIR=/opt/miaou-bash |
|||
export MIAOU_BASH_DIR |
|||
|
|||
local tempfile |
|||
tempfile="/tmp/$(basename "$MAIN_TAR_GZ_URL")" |
|||
curl -so "$tempfile" $MAIN_TAR_GZ_URL |
|||
sudo tar -xzf "$tempfile" --directory "$(dirname "$MIAOU_BASH_DIR")" |
|||
rm "$tempfile" |
|||
execute_miaou_lib initiate |
|||
echo "miaou-bash successfully $deployment_type_adjective" |
|||
} |
|||
|
|||
## MAIN |
|||
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 |
|||
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 |
|||
} |
|||
|
|||
set -Eeuo pipefail |
|||
function once_installed { |
|||
[[ -v MIAOU_BASH_DIR && -d "$MIAOU_BASH_DIR" && |
|||
-L /etc/inputrc && |
|||
"$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]] |
|||
} |
|||
|
|||
deployment_type_adjective="${1:-installed}" |
|||
function execute_miaou_lib { |
|||
sudo -E "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR"/lib/"$1".bash |
|||
} |
|||
|
|||
[[ "$UID" -ne 0 ]] && echo 'root privilege required' && exit 1 |
|||
! assert_supported_distro && echo 'unsupported distro: debian-like OR arch-like expected' && exit 2 |
|||
function sudo_root { |
|||
[[ "$UID" -ne 0 ]] && sudo -vp 'SUDO privilege required: ' |
|||
true |
|||
} |
|||
## MAIN |
|||
|
|||
if [[ ! -v MIAOU_BASH_DIR ]]; then |
|||
MIAOU_BASH_DIR=/opt/miaou-bash |
|||
export MIAOU_BASH_DIR |
|||
fi |
|||
# source <(curl -s https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install2.sh) |
|||
|
|||
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" |
|||
fi |
|||
set -Eeuo pipefail |
|||
assert_supported_distro |
|||
sudo_root |
|||
deployment_type_adjective="${1:-installed}" |
|||
if once_installed; then upgrade; else install; fi |
|||
exec bash -l |
|||
@ -1,66 +0,0 @@ |
|||
#!/usr/bin/env bash |
|||
## CONSTANTS |
|||
|
|||
#TODO: LATEST_TAG |
|||
# LATEST_TAG=$(curl -s https://git.artcode.re/api/v1/repos/miaou/miaou-bash/tags|grep -oPm1 '{"name":".*?",' | head -n1 | cut -d'"' -f4) |
|||
# https://git.artcode.re/miaou/miaou-bash/archive/0.3.109.tar.gz |
|||
|
|||
MAIN_TAR_GZ_URL="https://git.artcode.re/miaou/miaou-bash/archive/main.tar.gz" |
|||
|
|||
## FUNCTIONS |
|||
|
|||
function upgrade { |
|||
echo UPGRADE |
|||
execute_miaou_lib self-upgrade |
|||
} |
|||
|
|||
function install { |
|||
echo INSTALL |
|||
MIAOU_BASH_DIR=/opt/miaou-bash |
|||
export MIAOU_BASH_DIR |
|||
|
|||
local tempfile |
|||
tempfile="/tmp/$(basename "$MAIN_TAR_GZ_URL")" |
|||
curl -so "$tempfile" $MAIN_TAR_GZ_URL |
|||
sudo tar -xzf "$tempfile" --directory "$(dirname "$MIAOU_BASH_DIR")" |
|||
rm "$tempfile" |
|||
execute_miaou_lib initiate |
|||
|
|||
# source /etc/profile |
|||
echo "miaou-bash successfully installed" |
|||
exec bash -l |
|||
} |
|||
|
|||
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 |
|||
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 { |
|||
[[ -v MIAOU_BASH_DIR && -d "$MIAOU_BASH_DIR" && |
|||
-L /etc/inputrc && |
|||
"$(readlink /etc/inputrc)" == "$MIAOU_BASH_DIR"/etc/inputrc ]] |
|||
} |
|||
|
|||
function execute_miaou_lib { |
|||
sudo -E "$MIAOU_BASH_DIR"/bin/miaou-bash "$MIAOU_BASH_DIR"/lib/"$1".bash |
|||
} |
|||
|
|||
function sudo_root { |
|||
[[ "$UID" -ne 0 ]] && sudo -vp 'SUDO privilege required: ' |
|||
true |
|||
} |
|||
## MAIN |
|||
|
|||
# source <(curl -s https://git.artcode.re/miaou/miaou-bash/raw/branch/main/install2.sh) |
|||
|
|||
set -Eeuo pipefail |
|||
assert_supported_distro |
|||
sudo_root |
|||
if once_installed; then upgrade; else install; fi |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue