| #!/bin/bash |
| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Color output encodings. |
| COL_RED='\E[31;1m' |
| COL_GREEN='\E[32;1m' |
| COL_YELLOW='\E[33;1m' |
| COL_BLUE='\E[34;1m' |
| COL_STOP='\E[0;m' |
| |
| # args: [message] |
| green() { |
| echo -e "${COL_GREEN}$*${COL_STOP}" |
| } |
| |
| # args: [message] |
| yellow() { |
| echo -e "${COL_YELLOW}WARNING: $*${COL_STOP}" |
| } |
| |
| # args: [message] |
| red() { |
| echo -e "${COL_RED}$*${COL_STOP}" |
| } |
| |
| # args: [nested level] [message] |
| error() { |
| local lev=${1:-} |
| case "${1:-}" in |
| [0-9]*) |
| lev=$1 |
| shift |
| ;; |
| *) lev=0 |
| ;; |
| esac |
| local x=$(caller $lev) |
| local cline="${x%% *}" |
| local cfile="${x#* }" |
| cfile="${cfile##*/}" |
| local args="$*" |
| local spacer="${args:+: }" |
| red "at ${cfile}, line ${cline}${spacer}${args}" 1>&2 |
| exit 1 |
| } |