mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-20 10:12:06 +01:00
66 lines
1.9 KiB
Bash
Executable File
66 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# command info
|
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
|
echo "RaspiBlitz Error Handling"
|
|
echo
|
|
echo "blitz.error.sh [source-script-name] [fixed-short-code] [?detail-message] [?additional-debugdata] [?logfile]"
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
###################
|
|
# ERROR HANDLING
|
|
###################
|
|
|
|
# get required parameters
|
|
script=$1
|
|
shortcode=$2
|
|
|
|
# check reqired parameters
|
|
if [ "${script}" == "" ]; then
|
|
/home/admin/config.scripts/blitz.error.sh blitz.error.sh "error-missing-script" "missing any parameter" "$@"
|
|
exit 1
|
|
fi
|
|
if [ "${shortcode}" == "" ]; then
|
|
/home/admin/config.scripts/blitz.error.sh blitz.error.sh "error-missing-code" "script ${script} missing error code" "$@"
|
|
exit 1
|
|
fi
|
|
|
|
# set error info in cache system state (for DISPLAY on lcd, report to webui, etc)
|
|
/home/admin/_cache.sh set state "error"
|
|
/home/admin/_cache.sh set message "${shortcode}"
|
|
|
|
# prepare log error report
|
|
dateStr=$(date)
|
|
errorReport="ERROR in ${script} --> ${shortcode} on ${dateStr}"
|
|
|
|
# get optional parameters & extend error report if given
|
|
detail=$4
|
|
debugdata=$5
|
|
if [ "${detail}" != "" ] || [ "${debugdata}" != "" ]; then
|
|
errorReport="${errorReport}\nDETAIL --> ${detail}\nDEBUG --> ${debugdata}"
|
|
fi
|
|
|
|
# A) write error reports to /home/admin
|
|
timestampStr=$(date +%s)
|
|
filename="/home/admin/error-${script}-${timestampStr}.log"
|
|
echo "${errorReport}" > ${filename}
|
|
chown admin:admin ${filename}
|
|
|
|
# B) write error to std outs
|
|
>&2 echo "${errorReport} --> ${filename}"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "${errorReport}"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
|
|
# C) write error report to given logfile (optional)
|
|
logfile=$6
|
|
if [ "${logfile}" != "" ]; then
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ${logFile}
|
|
echo "${errorReport}" >> ${logFile}
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ${logFile}
|
|
fi
|
|
|
|
# on serial calls make sure that at least a second is between error reports
|
|
sleep 1 |