forked from toolshed/abra
		
	refactor(installer): remove doubled code for RC
This commit is contained in:
		| @ -1,10 +1,17 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| ABRA_VERSION="0.3.0-alpha" | 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" | 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" | 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 { | function show_banner { | ||||||
|   echo "" |   echo "" | ||||||
|   echo "   ____                           ____ _                 _ " |   echo "   ____                           ____ _                 _ " | ||||||
| @ -37,6 +44,7 @@ function install_abra_release { | |||||||
|     exit 1 |     exit 1 | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
|  |  | ||||||
|   # FIXME: support different architectures |   # FIXME: support different architectures | ||||||
|   PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m) |   PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m) | ||||||
|   FILENAME="abra_"$ABRA_VERSION"_"$PLATFORM"" |   FILENAME="abra_"$ABRA_VERSION"_"$PLATFORM"" | ||||||
| @ -81,75 +89,11 @@ function install_abra_release { | |||||||
|   echo "abra installed to $HOME/.local/bin/abra" |   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 { | function run_installation { | ||||||
|   show_banner |   show_banner | ||||||
|   install_abra_release |   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 "$@" | run_installation "$@" | ||||||
| exit 0 | exit 0 | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user