From 31a6f6452e6de2bcf27b5a141613b183ee29ce63 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Sat, 05 Jan 2019 15:40:45 -0500 Subject: lib/error.sh: New file --- (limited to 'lib/error.sh') diff --git a/lib/error.sh b/lib/error.sh new file mode 100644 index 0000000..91d1b5a --- /dev/null +++ b/lib/error.sh @@ -0,0 +1,52 @@ +# Error handling callbacks +# +# Copyright (C) 2019 Patrick McDermott +# +# This file is part of opkbuild. +# +# opkbuild is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# opkbuild is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with opkbuild. If not, see . + +_ob_parse_error_cb='' + +## @brief Set the parse error callback +## @details \fBob_set_parse_error_cb\fP sets the function to be called upon +## parse errors. +## @operand cb req The callback function name. Must accept at least three +## arguments: a file name, a line number, and an error ID. +## @return 0 This function returns 0. +## @pure no This function sets an internal global variable. +ob_set_parse_error_cb() +{ + local cb="${1}" + shift 1 + + _ob_parse_error_cb="${cb}" + + return 0 +} + +_ob_run_parse_error_cb() +{ + local file="${1}" + local line="${2}" + local err_id="${3}" + shift 3 + + if [ -n "${_ob_parse_error_cb}" ]; then + "${_ob_parse_error_cb}" "${file}" "${line}" "${err_id}" "${@}" + return ${?} + else + return 0 + fi +} -- cgit v0.9.1