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