# Functions for printing messages # # Copyright (C) 2012, 2018 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 . ## @brief Print an error message and exit ## @details \fBob_error\fP prints \fIarguments\fP according to \fIformat\fP and ## then exits the application. ## @operand format req The format string. See \fBprintf\fP(1) for the syntax ## of \fIformat\fP. ## @operand arguments opt Arguments to be printed, as referenced by ## \fIformat\fP. ## @return This function does not return. It causes the application to exit ## with an exit status of 1. ## @stderr This function prints the formatted message, preceded by the program ## name and "Error:", to stderr. ## @pure no This function causes the current shell to exit. ob_error() { printf '%s: Error: ' "${0##*/}" >&2 printf "${@}" >&2 printf '\n' >&2 exit 1 } ## @brief Print a warning message ## @details \fBob_warn\fP prints \fIarguments\fP according to \fIformat\fP. ## @operand format req The format string. See \fBprintf\fP(1) for the syntax ## of \fIformat\fP. ## @operand arguments opt Arguments to be printed, as referenced by ## \fIformat\fP. ## @return Returns 0 on success or 125 if \fIformat\fP is missing. ## @stderr This function prints the formatted message, preceded by the program ## name and "Warning:", to stderr. ## @pure yes This function has no side effects. ob_warn() { if [ ${#} -eq 0 ]; then return 125 fi printf '%s: Warning: ' "${0##*/}" >&2 printf "${@}" >&2 printf '\n' >&2 return 0 } ## @brief Print an informational message ## @details \fBob_warn\fP prints \fIarguments\fP according to \fIformat\fP. ## @operand format req The format string. See \fBprintf\fP(1) for the syntax ## of \fIformat\fP. ## @operand arguments opt Arguments to be printed, as referenced by ## \fIformat\fP. ## @return Returns 0 on success or 125 if \fIformat\fP is missing. ## @stderr This function prints the formatted message, preceded by the program ## name, to stderr. ## @pure yes This function has no side effects. ob_info() { if [ ${#} -eq 0 ]; then return 125 fi printf '%s: ' "${0##*/}" >&2 printf "${@}" >&2 printf '\n' >&2 return 0 }