From c31242efbbf564aba19a09792b90560c36889237 Mon Sep 17 00:00:00 2001 From: Sam Sesh Date: Tue, 13 Jun 2023 16:00:25 +0330 Subject: [PATCH] add install script --- install.sh | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..996918e --- /dev/null +++ b/install.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +# Set the desired GitHub repository +repo="go-gost/gost" +base_url="https://api.github.com/repos/$repo/releases" + +# Function to download and install gost +install_gost() { + version=$1 + # Detect the operating system + if [[ "$(uname)" == "Linux" ]]; then + os="linux" + elif [[ "$(uname)" == "Darwin" ]]; then + os="darwin" + elif [[ "$(uname)" == "MINGW"* ]]; then + os="windows" + else + echo "Unsupported operating system." + exit 1 + fi + + # Detect the CPU architecture + arch=$(uname -m) + case $arch in + x86_64) + cpu_arch="amd64" + ;; + armv5*) + cpu_arch="armv5" + ;; + armv6*) + cpu_arch="armv6" + ;; + armv7*) + cpu_arch="armv7" + ;; + aarch64) + cpu_arch="arm64" + ;; + i686) + cpu_arch="386" + ;; + mips64*) + cpu_arch="mips64" + ;; + mips*) + cpu_arch="mips" + ;; + mipsel*) + cpu_arch="mipsle" + ;; + *) + echo "Unsupported CPU architecture." + exit 1 + ;; + esac + get_download_url="$base_url/tags/$version" + download_url=$(curl -s "$get_download_url" | grep -Eo "\"browser_download_url\": \".*${os}.*${cpu_arch}.*\"" | awk -F'["]' '{print $4}') + + # Download the binary + echo "Downloading gost version $version..." + curl -fsSL -o gost.tar.gz $download_url + + # Extract and install the binary + echo "Installing gost..." + tar -xzf gost.tar.gz + chmod +x gost + sudo mv gost /usr/local/bin/gost + + echo "gost installation completed!" +} + +# Retrieve available versions from GitHub API +versions=$(curl -s "$base_url" | grep -oP 'tag_name": "\K[^"]+') + +# Check if --install option provided +if [[ "$1" == "--install" ]]; then + # Install the latest version automatically + latest_version=$(echo "$versions" | head -n 1) + install_gost $latest_version +else + # Display available versions to the user + echo "Available gost versions:" + select version in $versions; do + if [[ -n $version ]]; then + install_gost $version + break + else + echo "Invalid choice! Please select a valid option." + fi + done +fi