#!/bin/bash exname=$(basename $0) compose_core=$(which compose-core) || { echo "Requires compose-core executable to be in \$PATH." >&2 exit 1 } fetch-def() { local path="$1" fname="$2" ( . "$path" 1>&2 || { echo "Failed to load '$path'." >&2 exit 1 } declare -f "$fname" ) } prefix_cmd=" . /etc/shlib include common include parse . ../lib/common $(fetch-def "$compose_core" yaml_get_values) $(fetch-def "$compose_core" yaml_get_interpret) $(fetch-def "$compose_core" read-0-err) $(fetch-def "$compose_core" p-err) " || { echo "Couldn't build prefix cmd" >&2 exit 1 } # mock cfg-get-value() { local key="$1" shyaml get-value "$key" 2>/dev/null } export -f cfg-get-value yaml_get_interpret() { shyaml get-value } export -f yaml_get_interpret export CACHEDIR=$(mktemp -d -t tmp.XXXXXXXXXX) export state_tmpdir=$(mktemp -d -t tmp.XXXXXXXXXX) trap "rm -rf \"$state_tmpdir\"" EXIT trap "rm -rf \"$CACHEDIR\"" EXIT ## ## Tests ## try " cron:lock_opts ''" noerror is out '' TRIM try " cron:lock_opts '--XXX' " is errlvl 1 is err reg 'Error: .*argument.*--XXX.*' is out '' try " cron:lock_opts -p X " is errlvl 1 is err reg 'Error: .*priority.*X.*integer.*' is out '' try " cron:lock_opts -p 10 -k -D " noerror is out "\ -p 10 -k -D" TRIM