add install script
This commit is contained in:
parent
6ee632cee2
commit
c31242efbb
92
install.sh
Normal file
92
install.sh
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user