44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
set -x  # Enable debugging mode to print each command before executing
 | 
						|
 | 
						|
INSTALL_DIR="/usr/local/bin"
 | 
						|
BINARY_NAME="go-compose-exporter"
 | 
						|
BASE_URL="https://git.nixc.us/Nixius/go-compose-exporter/raw/branch/main/dist"
 | 
						|
 | 
						|
# Supported architectures
 | 
						|
ARCHITECTURES=("linux/amd64" "linux/arm64" "linux/arm/v7" "darwin/amd64" "darwin/arm64")
 | 
						|
 | 
						|
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
 | 
						|
ARCH="$(uname -m)"
 | 
						|
 | 
						|
case $ARCH in
 | 
						|
    x86_64) ARCH="amd64" ;;
 | 
						|
    arm64 | aarch64) ARCH="arm64" ;;
 | 
						|
    arm*) ARCH="arm/v7" ;;
 | 
						|
    *) echo "Unsupported architecture: $ARCH"; exit 1 ;;
 | 
						|
esac
 | 
						|
 | 
						|
BINARY_URL="${BASE_URL}/${BINARY_NAME}_${OS}_${ARCH}"
 | 
						|
 | 
						|
echo "Downloading and installing $BINARY_NAME from $BINARY_URL..."
 | 
						|
 | 
						|
# Check if we have write permission to the install directory
 | 
						|
if [ -w "${INSTALL_DIR}" ]; then
 | 
						|
    curl -sSL --fail "$BINARY_URL" -o "${INSTALL_DIR}/${BINARY_NAME}"
 | 
						|
    chmod +x "${INSTALL_DIR}/${BINARY_NAME}"
 | 
						|
else
 | 
						|
    sudo curl -sSL --fail "$BINARY_URL" -o "${INSTALL_DIR}/${BINARY_NAME}"
 | 
						|
    sudo chmod +x "${INSTALL_DIR}/${BINARY_NAME}"
 | 
						|
fi
 | 
						|
 | 
						|
# Verify the binary is executable
 | 
						|
if [[ ! -x "${INSTALL_DIR}/${BINARY_NAME}" ]]; then
 | 
						|
    echo "Failed to download or install the binary properly. Please check the URL or your internet connection."
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "Installed $BINARY_NAME to $INSTALL_DIR"
 | 
						|
 | 
						|
set +x  # Disable debugging mode
 |