/ install.sh
install.sh
1 #!/bin/sh 2 set -e 3 4 # beats installer - detects OS/arch and downloads the right binary 5 6 REPO="bierlingm/beats" 7 INSTALL_DIR="${INSTALL_DIR:-/usr/local/bin}" 8 9 # Detect OS 10 OS=$(uname -s | tr '[:upper:]' '[:lower:]') 11 case "$OS" in 12 darwin) OS="darwin" ;; 13 linux) OS="linux" ;; 14 *) echo "Unsupported OS: $OS"; exit 1 ;; 15 esac 16 17 # Detect architecture 18 ARCH=$(uname -m) 19 case "$ARCH" in 20 x86_64|amd64) ARCH="amd64" ;; 21 arm64|aarch64) ARCH="arm64" ;; 22 *) echo "Unsupported architecture: $ARCH"; exit 1 ;; 23 esac 24 25 # Get latest version 26 VERSION=$(curl -sL "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') 27 if [ -z "$VERSION" ]; then 28 echo "Failed to get latest version" 29 exit 1 30 fi 31 32 echo "Installing beats $VERSION for $OS/$ARCH..." 33 34 # Download and extract 35 TARBALL="beats_${VERSION#v}_${OS}_${ARCH}.tar.gz" 36 URL="https://github.com/$REPO/releases/download/$VERSION/$TARBALL" 37 38 TMPDIR=$(mktemp -d) 39 trap "rm -rf $TMPDIR" EXIT 40 41 curl -sL "$URL" | tar xz -C "$TMPDIR" 42 43 # Install 44 if [ -w "$INSTALL_DIR" ]; then 45 mv "$TMPDIR/beats" "$INSTALL_DIR/beats" 46 else 47 echo "Installing to $INSTALL_DIR (requires sudo)..." 48 sudo mv "$TMPDIR/beats" "$INSTALL_DIR/beats" 49 fi 50 51 echo "beats $VERSION installed to $INSTALL_DIR/beats" 52 echo "" 53 echo "Get started:" 54 echo " beats add \"Your first beat\"" 55 echo " beats list"