123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/bin/bash
- # Check Root User
- # If you want to run as another user, please modify $EUID to be owned by this user
- if [[ "$EUID" -ne '0' ]]; then
- echo "$(tput setaf 1)Error: You must run this script as root!$(tput sgr0)"
- exit 1
- fi
- # 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
- 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
|