forked from coop-cloud/abra
refactor(installer): remove doubled code for RC
This commit is contained in:
parent
9220a8c09b
commit
5add4ccc1b
|
@ -1,10 +1,17 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
ABRA_VERSION="0.3.0-alpha"
|
||||
RC_VERSION="0.3.1-rc1"
|
||||
ABRA_RELEASE_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$ABRA_VERSION"
|
||||
RC_VERSION="0.3.1-rc1"
|
||||
RC_VERSION_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$RC_VERSION"
|
||||
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" == "--rc" ]; then
|
||||
ABRA_VERSION="$RC_VERSION"
|
||||
ABRA_RELEASE_URL="$RC_VERSION_URL"
|
||||
fi
|
||||
done
|
||||
|
||||
function show_banner {
|
||||
echo ""
|
||||
echo " ____ ____ _ _ "
|
||||
|
@ -37,6 +44,7 @@ function install_abra_release {
|
|||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# FIXME: support different architectures
|
||||
PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m)
|
||||
FILENAME="abra_"$ABRA_VERSION"_"$PLATFORM""
|
||||
|
@ -81,75 +89,11 @@ function install_abra_release {
|
|||
echo "abra installed to $HOME/.local/bin/abra"
|
||||
}
|
||||
|
||||
function install_abra_rc {
|
||||
mkdir -p "$HOME/.local/bin"
|
||||
|
||||
if ! type "curl" > /dev/null 2>&1; then
|
||||
echo "'curl' is not installed, cannot proceed..."
|
||||
echo "perhaps try installing manually via the releases URL?"
|
||||
echo "https://git.coopcloud.tech/coop-cloud/abra/releases"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# FIXME: support different architectures
|
||||
PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m)
|
||||
FILENAME="abra_"$RC_VERSION"_"$PLATFORM""
|
||||
sed_command_rel='s/.*"assets":\[\{[^]]*"name":"'$FILENAME'"[^}]*"browser_download_url":"([^"]*)".*\].*/\1/p'
|
||||
sed_command_checksums='s/.*"assets":\[\{[^\]*"name":"checksums.txt"[^}]*"browser_download_url":"([^"]*)".*\].*/\1/p'
|
||||
|
||||
json=$(curl -s $RC_VERSION_URL)
|
||||
release_url=$(echo $json | sed -En $sed_command_rel)
|
||||
checksums_url=$(echo $json | sed -En $sed_command_checksums)
|
||||
|
||||
checksums=$(curl -s $checksums_url)
|
||||
checksum=$(echo "$checksums" | grep "$FILENAME" - | sed -En 's/([0-9a-f]{64})\s+'"$FILENAME"'.*/\1/p')
|
||||
|
||||
echo "downloading $RC_VERSION $PLATFORM binary release for abra..."
|
||||
curl --progress-bar "$release_url" --output "$HOME/.local/bin/.abra-download"
|
||||
localsum=$(sha256sum $HOME/.local/bin/.abra-download | sed -En 's/([0-9a-f]{64})\s+.*/\1/p')
|
||||
echo "checking if checksums match..."
|
||||
if [[ "$localsum" != "$checksum" ]]; then
|
||||
print_checksum_error
|
||||
exit 1
|
||||
fi
|
||||
echo "$(tput setaf 2)check successful!$(tput sgr0)"
|
||||
mv "$HOME/.local/bin/.abra-download" "$HOME/.local/bin/abra"
|
||||
chmod +x "$HOME/.local/bin/abra"
|
||||
|
||||
x=$(echo $PATH | grep $HOME/.local/bin)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "$(tput setaf 3)WARNING: $HOME/.local/bin/ is not in \$PATH! If you want to run abra by just typing "abra" you should add it to your \$PATH! To do that run:$(tput sgr0)"
|
||||
p=$HOME/.local/bin
|
||||
com="echo PATH=\$PATH:$p"
|
||||
if [[ $SHELL =~ "bash" ]]; then
|
||||
echo "echo $com >> $HOME/.bashrc"
|
||||
elif [[ $SHELL =~ "fizsh" ]]; then
|
||||
echo "echo $com >> $HOME/.fizsh/.fizshrc"
|
||||
elif [[ $SHELL =~ "zsh" ]]; then
|
||||
echo "echo $com >> $HOME/.zshrc"
|
||||
else
|
||||
echo "echo $com >> $HOME/.profile"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "abra installed to $HOME/.local/bin/abra"
|
||||
}
|
||||
|
||||
function run_installation {
|
||||
show_banner
|
||||
install_abra_release
|
||||
}
|
||||
|
||||
function run_rc_installation {
|
||||
show_banner
|
||||
install_abra_rc
|
||||
}
|
||||
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" == "--rc" ]; then
|
||||
run_rc_installation "$@"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
run_installation "$@"
|
||||
exit 0
|
||||
|
|
Loading…
Reference in New Issue