/ 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"