summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2022-05-11 03:35:52 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2022-05-11 03:49:04 -0400
commitdbdda40f279bd7fd7cc414960b716cb75abcd1bf (patch)
tree7502396fec0e5adb27005c230cc5b4ac6790faa9
parent377d2fe006c04f8f3275a57036abe91dccc09202 (diff)
bugfix error loggingwip-2022-05-11
-rwxr-xr-xinstall.sh4
-rw-r--r--session-common.sh.inc10
2 files changed, 8 insertions, 6 deletions
diff --git a/install.sh b/install.sh
index 561edb5..a1bf5d8 100755
--- a/install.sh
+++ b/install.sh
@@ -531,8 +531,8 @@ Cleanup()
## error logging ##
set -o errexit -o errtrace
-trap 'trap - ERR ; clear ; LogError() { : ; } ; Cleanup ;' EXIT INT TERM
-trap 'trap - EXIT INT TERM ; clear ; LogError "${FUNCNAME[0]}" ${LINENO} ;' ERR
+trap 'trap - ERR ; LogError() { : ; } ; Cleanup ;' EXIT INT TERM
+trap 'trap - EXIT INT TERM ; LogError "${FUNCNAME[0]}" ${LINENO} ;' ERR
## main entry ##
diff --git a/session-common.sh.inc b/session-common.sh.inc
index 5ab52d4..a49762f 100644
--- a/session-common.sh.inc
+++ b/session-common.sh.inc
@@ -269,16 +269,18 @@ RemoveOption() # (part_n)
LogError() # (source_file func_name line_n)
{
- local SOURCE_FILE="$1"
- local FUNC_NAME="$( [[ -n "$2" ]] && echo "$2" || echo "${SOURCE_FILE}" )"
- local LINE_N=$3
+ local SOURCE_FILE="${BASH_SOURCE[1]}"
+ local FUNC_NAME="$( [[ -n "$1" ]] && echo "$1" || echo "FUNC_NAME" )"
+ local LINE_N=$2
local N_CONTEXT_LINES=3
local N_LINES=$(( 1 + (2 * N_CONTEXT_LINES) ))
local BEGIN_LINE_N=$(( LINE_N - N_CONTEXT_LINES ))
local END_LINE_N=$(( LINE_N + N_CONTEXT_LINES ))
local marker line
- echo "ERROR: in ${FUNC_NAME}::${LINE_N}" >&2
+ (( BEGIN_LINE_N < 0 )) && BEGIN_LINE_N=0
+
+ echo "ERROR: in ${SOURCE_FILE} ${FUNC_NAME}()::${LINE_N}" >&2
sed 's|\\$||' "${SOURCE_FILE}" | pr -tn | \
tail -n +${BEGIN_LINE_N} | head -n ${N_LINES} | tr '\n' '\n' | \
while read line