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-15 09:19:49 -0400
commit4567b97711270b3040c95da1281cb40793eb9b24 (patch)
tree230106ac2dbb9e0d664c7ce4c7036615334379f4
parente3da8225ba2b1ff7b9e51db6143538f8d228e394 (diff)
bugfix error logging
-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 e1ae83b..9a96a3f 100755
--- a/install.sh
+++ b/install.sh
@@ -529,8 +529,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 a487cd9..a0f3b2b 100644
--- a/session-common.sh.inc
+++ b/session-common.sh.inc
@@ -279,16 +279,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