#!/bin/bash
# args - Bash argument handling library
set -e
######
# Argument Checking
check_args() {
local tst=$1
local expect=$2
shift 2
local nargs="${#@}"
assert_usage "wrong number of arguments ($nargs $tst $expect)" \
[ ! $nargs $tst $expect ]
}
# has_args() - Asserts there are exactly `n` ($1) arguments ($@).
has_args() { check_args -ne "$@"; }
# min_args() - Asserts there are at least `n` ($1) arguments ($@).
min_args() { check_args -lt "$@"; }
# max_args() - Asserts there are at most `n` ($1) arguments ($@).
max_args() { check_args -gt "$@"; }
# min_max_args() - Asserts there are at least `n` ($1) and at most `m`
# ($2) arguments ($@).
min_max_args() {
local n=$1
local m=$2
shift 2
assert_usage "wrong number of arguments ($# < $n or $# > $m)" \
[ $# -ge $n -a $# -le $m ]
}
######
# Argument Quoting
# arg_quote() - Quotes a single argument ($1).
arg_quote() {
has_args 1 "$@"
# handle existing quotes
local value=${1//\'/\'\\\'\'}
printf "'%s'" "$value"
}
Generated on Fri Jul 28 14:34:49 PDT 2017 by mcsh d14 v0.23.0.