#!/bin/sh SENTRY_KEY= SENTRY_SECRET= SENTRY_PROJECTID=1 SENTRY_HOST=sentry.example.com SCRIPT_ARGUMENTS=$@ capture_error() { MESSAGE=$1 EVENT_ID=`openssl rand -hex 32` EVENT_TIMESTAMP=`date +"%Y-%m-%dT%H:%M:%S"` SENTRY_TIMESTAMP=`date +%s` curl --data "{ \"event_id\": \"$EVENT_ID\", \"culprit\": \"$0\", \"timestamp\": \"$EVENT_TIMESTAMP\", \"message\": \"$MESSAGE\", \"tags\": { \"shell\": \"$SHELL\", \"server_name\": \"`hostname`\", \"path\": \"`pwd`\" }, \"exception\": [{ \"type\": \"ScriptError\", \"value\": \"$MESSAGE\", \"module\": \"__builtins__\" }], \"extra\": { \"sys.argv\": \"$SCRIPT_ARGUMENTS\" } }" -H "Content-Type: application/json" -H "X-Sentry-Auth: Sentry sentry_version=5, sentry_timestamp=$SENTRY_TIMESTAMP, sentry_key=$SENTRY_KEY, sentry_client=raven-bash/0.1, sentry_secret=$SENTRY_SECRET" http://$SENTRY_KEY:$SENTRY_SECRET@$SENTRY_HOST/api/$SENTRY_PROJECTID/store/ } # Example: capture_error "Unable to execute the command" exit 1