| #!/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] |
| function green { |
| echo -e "${COL_GREEN}$*${COL_STOP}" |
| } |
| |
| # args: [message] |
| function yellow { |
| echo -e "${COL_YELLOW}WARNING: $*${COL_STOP}" |
| } |
| |
| function red { |
| echo -e "${COL_RED}$*${COL_STOP}" |
| } |
| |
| # args: [nested level [message]] |
| function error { |
| local lev=${1:-} |
| case "${1:-}" in |
| [0-9]*) |
| lev=$1 |
| shift |
| ;; |
| *) lev=0 |
| ;; |
| esac |
| local x=$(caller $lev) |
| local cline=${x%% *} |
| local cfunc=${x#* } |
| cfunc=${cfunc##*/} |
| local args="$*" |
| local spacer=${args:+: } |
| red "at ${cfunc}, line ${cline}${spacer}${args}" 1>&2 |
| exit 1 |
| } |