github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/swarm/dev/scripts/util.sh (about)

     1  # shared shell functions
     2  
     3  info() {
     4    local msg="$@"
     5    local timestamp="$(date +%H:%M:%S)"
     6    say "===> ${timestamp} ${msg}" "green"
     7  }
     8  
     9  warn() {
    10    local msg="$@"
    11    local timestamp=$(date +%H:%M:%S)
    12    say "===> ${timestamp} WARN: ${msg}" "yellow" >&2
    13  }
    14  
    15  fail() {
    16    local msg="$@"
    17    say "ERROR: ${msg}" "red" >&2
    18    exit 1
    19  }
    20  
    21  # say prints the given message to STDOUT, using the optional color if
    22  # STDOUT is a terminal.
    23  #
    24  # usage:
    25  #
    26  #   say "foo"              - prints "foo"
    27  #   say "bar" "red"        - prints "bar" in red
    28  #   say "baz" "green"      - prints "baz" in green
    29  #   say "qux" "red" | tee  - prints "qux" with no colour
    30  #
    31  say() {
    32    local msg=$1
    33    local color=$2
    34  
    35    if [[ -n "${color}" ]] && [[ -t 1 ]]; then
    36      case "${color}" in
    37        red)
    38          echo -e "\033[1;31m${msg}\033[0m"
    39          ;;
    40        green)
    41          echo -e "\033[1;32m${msg}\033[0m"
    42          ;;
    43        yellow)
    44          echo -e "\033[1;33m${msg}\033[0m"
    45          ;;
    46        *)
    47          echo "${msg}"
    48          ;;
    49      esac
    50    else
    51      echo "${msg}"
    52    fi
    53  }