#!/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