#!/bin/sh
set -eu

# First-party entry to the reviewed public helper. This file does not collect
# installation telemetry or touch an ObsDog Space.
source_url='https://raw.githubusercontent.com/obsdoghq/obsdog-releases/dd4bd7f3e5dbd220ffbbaf6b976eb2587075c1b7/scripts/setup-agent.sh'
expected_sha256='b82de7992e4d2042407511ae662ded996011eacf862c11bb6a7110b146009d65'

fail() { printf 'ObsDog installer: %s\n' "$1" >&2; exit 1; }
command -v curl >/dev/null 2>&1 || fail 'curl is required'
if command -v sha256sum >/dev/null 2>&1; then
  checksum_tool=sha256sum
elif command -v shasum >/dev/null 2>&1; then
  checksum_tool=shasum
else
  fail 'sha256sum or shasum is required'
fi
setup=$(mktemp) || fail 'could not create a temporary file'
trap 'rm -f "$setup"' EXIT
trap 'exit 130' INT
trap 'exit 143' TERM

curl -fsSL "$source_url" -o "$setup" || fail 'could not download the reviewed setup helper'
if [ "$checksum_tool" = sha256sum ]; then
  actual_sha256=$(sha256sum "$setup" | awk '{print $1}') || fail 'could not verify the setup helper'
else
  actual_sha256=$(shasum -a 256 "$setup" | awk '{print $1}') || fail 'could not verify the setup helper'
fi
[ "$actual_sha256" = "$expected_sha256" ] || fail 'setup helper checksum mismatch; nothing was executed'
sh "$setup" "$@"
