aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/dev/scripts/util.sh
diff options
context:
space:
mode:
Diffstat (limited to 'swarm/dev/scripts/util.sh')
-rw-r--r--swarm/dev/scripts/util.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/swarm/dev/scripts/util.sh b/swarm/dev/scripts/util.sh
new file mode 100644
index 000000000..f17a12e42
--- /dev/null
+++ b/swarm/dev/scripts/util.sh
@@ -0,0 +1,53 @@
+# 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
+}