There is a command line interface for submitting errors. It can be used for non-python application (like shell scripts).
usage: bugzscout [-h] [-v] [-u URL] [--user USER] [--project PROJECT] [--area AREA]
[-e EXTRA] [--default-message DEFAULT_MESSAGE]
description
Command line interface for sumbitting cases to FogBugz via BugzScout.
Environment variables can be used to set the FogBugz arguments with:
* BUGZSCOUT_URL
* BUGZSCOUT_USER
* BUGZSCOUT_PROJECT
* BUGZSCOUT_AREA
optional arguments:
-h, --help show this help message and exit
-v, --verbose Enable verbose output. (default: False)
FogBugz arguments:
-u URL, --url URL URL for bugzscout requests to be sent. Should be something like
.../scoutSubmit.asp. (default: None)
--user USER User to designate when submitting via bugzscout. (default: None)
--project PROJECT Fogbugz project to file cases under. (default: None)
--area AREA Fogbugz area to file cases under. (default: None)
error arguments:
-e EXTRA, --extra EXTRA
Extra data to send with error. (default: None)
--default-message DEFAULT_MESSAGE
Set default message if case is new. (default: None)
description Description of error. Will be matched against existing cases.
To simplify submitting multiple errors, the FogBugz configuration can be set in the environment.
# (Optional) Setup the environment.
export BUGZSCOUT_URL=http://fogbugz/scoutSubmit.asp
export BUGZSCOUT_USER=errors
export BUGZSCOUT_PROJECT='My Project'
export BUGZSCOUT_AREA=Errors
# Submit a new error.
bugzscout --extra 'Extra data for the case...' 'The description of the error.'
Below is an example of a bash function that can wrap other bash calls. It reports an error to fogbugz if the call has a non-zero exit code.
#!/bin/bash
# Setup the environment with FogBugz configuration.
export BUGZSCOUT_URL='http://fogbugz/scoutSubmit.asp'
export BUGZSCOUT_USER='error-user'
export BUGZSCOUT_PROJECT='MyShellScript'
export BUGZSCOUT_AREA='Errors'
this_node=$(hostname --fqdn)
function bugzscout_wrap()
{
# The call is all the arguments to this function.
local call=$@
# Call the function.
bash -c "${call}"
local exit_code=$?
# If non-zero exit code, report error.
if [ "${exit_code}" != "0" ] ; then
bugzscout "${call} in ${0} failed with exit code ${exit_code} on ${this_node}" \
|| /bin/true
fi
return $exit_code
}
For example, in a bash shell, the second line would fail and report an error via BugzScout:
source path/to/bugzscout_wrap_function.sh
bugzscout_wrap /bin/false