#!/usr/bin/env bash set -o errexit MEM=$(docker info | grep "Total Memory" | cut -d':' -f2 | xargs | sed s/GiB//) # Docker reports RAM 0.2 less than what it is actually set to (( $(echo "$MEM < 5.7" | bc -l) )) && echo "There must be at least 6GB of RAM allocated to Docker to continue." && exit if [ "$1" == "--no-dev" ]; then bin/docker-compose --no-dev up -d --remove-orphans "${@:2}" exit $? fi # Ref: https://stackoverflow.com/a/51789677/9821321 function parseYaml { local s local w local fs s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') sed -ne "s|,$s\]$s\$|]|" \ -e "s|^\($s\)\($w\)$s:$s\[$s\(.*\)$s\]|\1\2:\n\1 - \3|;p" "$1" | \ sed -ne "s|,$s}$s\$|}|" \ -e "s|^\($s\)-$s{$s\(.*\)$s}|\1-\n\1 \2|;p" | \ sed -ne "s|^\($s\):|\1|" \ -e "s|^\($s\)-$s{[\"']\(.*\)[\"']}$s\$|\1$fs$fs\2|p" \ -e "s|^\($s\)-$s\(.*\)$s\$|\1$fs$fs\2|p" \ -e "s|^\($s\)\($w\)$s:$s{[\"']\(.*\)[\"']}$s\$|\1$fs\2$fs\3|p" \ -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" | \ awk -F"$fs" '{ indent = length($1)/2; vname[indent] = $2; for (i in vname) {if (i > indent) {delete vname[i]; idx[i]=0}} if (length($2) == 0) {vname[indent] = ++idx[indent] }; if (length($3) > 0) { vn=""; for (i=0; i