This PR adds a Swarm development environment which can be run in a Docker container and provides scripts for building binaries and running Swarm clusters.
		
			
				
	
	
		
			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
 | |
| }
 |