54 lines
		
	
	
		
			1018 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1018 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								# shared shell functions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								info() {
							 | 
						||
| 
								 | 
							
								  local msg="$@"
							 | 
						||
| 
								 | 
							
								  local timestamp="$(date +%H:%M:%S)"
							 | 
						||
| 
								 | 
							
								  say "===> ${timestamp} ${msg}" "green"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								warn() {
							 | 
						||
| 
								 | 
							
								  local msg="$@"
							 | 
						||
| 
								 | 
							
								  local timestamp=$(date +%H:%M:%S)
							 | 
						||
| 
								 | 
							
								  say "===> ${timestamp} WARN: ${msg}" "yellow" >&2
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fail() {
							 | 
						||
| 
								 | 
							
								  local msg="$@"
							 | 
						||
| 
								 | 
							
								  say "ERROR: ${msg}" "red" >&2
							 | 
						||
| 
								 | 
							
								  exit 1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# say prints the given message to STDOUT, using the optional color if
							 | 
						||
| 
								 | 
							
								# STDOUT is a terminal.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# usage:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#   say "foo"              - prints "foo"
							 | 
						||
| 
								 | 
							
								#   say "bar" "red"        - prints "bar" in red
							 | 
						||
| 
								 | 
							
								#   say "baz" "green"      - prints "baz" in green
							 | 
						||
| 
								 | 
							
								#   say "qux" "red" | tee  - prints "qux" with no colour
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								say() {
							 | 
						||
| 
								 | 
							
								  local msg=$1
							 | 
						||
| 
								 | 
							
								  local color=$2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if [[ -n "${color}" ]] && [[ -t 1 ]]; then
							 | 
						||
| 
								 | 
							
								    case "${color}" in
							 | 
						||
| 
								 | 
							
								      red)
							 | 
						||
| 
								 | 
							
								        echo -e "\033[1;31m${msg}\033[0m"
							 | 
						||
| 
								 | 
							
								        ;;
							 | 
						||
| 
								 | 
							
								      green)
							 | 
						||
| 
								 | 
							
								        echo -e "\033[1;32m${msg}\033[0m"
							 | 
						||
| 
								 | 
							
								        ;;
							 | 
						||
| 
								 | 
							
								      yellow)
							 | 
						||
| 
								 | 
							
								        echo -e "\033[1;33m${msg}\033[0m"
							 | 
						||
| 
								 | 
							
								        ;;
							 | 
						||
| 
								 | 
							
								      *)
							 | 
						||
| 
								 | 
							
								        echo "${msg}"
							 | 
						||
| 
								 | 
							
								        ;;
							 | 
						||
| 
								 | 
							
								    esac
							 | 
						||
| 
								 | 
							
								  else
							 | 
						||
| 
								 | 
							
								    echo "${msg}"
							 | 
						||
| 
								 | 
							
								  fi
							 | 
						||
| 
								 | 
							
								}
							 |