53 lines
895 B
Bash
53 lines
895 B
Bash
# -*- mode: sh; indent-tabs-mode: t -*-
|
|
|
|
append_values() {
|
|
while read -r _value
|
|
do
|
|
set -- "$@" --value "${_value}"
|
|
done
|
|
unset _value
|
|
"$@" </dev/null
|
|
}
|
|
|
|
grep_line() {
|
|
{ shift; printf '%s\n' "$@"; } | grep -qxF "$1"
|
|
}
|
|
|
|
prefix_lines() {
|
|
while test $# -gt 0
|
|
do
|
|
echo "$2" | awk -v prefix="$1" '$0 { printf "%s %s\n", prefix, $0 }'
|
|
shift; shift
|
|
done
|
|
}
|
|
|
|
print_errors() {
|
|
awk -v prefix="${1:-Found errors:}" -v suffix="${2-}" '
|
|
BEGIN {
|
|
if (getline) {
|
|
print prefix
|
|
print
|
|
rc = 1
|
|
}
|
|
}
|
|
{ print }
|
|
END {
|
|
if (rc && suffix) print suffix
|
|
exit rc
|
|
}' >&2
|
|
}
|
|
|
|
uci_validate_name() {
|
|
# like util.c uci_validate_name()
|
|
test -n "$*" && test -z "$(printf %s "$*" | tr -d '[:alnum:]_' | tr -c '' .)"
|
|
}
|
|
|
|
unquote_lines() {
|
|
sed -e '/^".*"$/{s/^"//;s/"$//}' \
|
|
-e '/'"^'.*'"'$/{s/'"^'"'//;s/'"'$"'//}'
|
|
}
|
|
|
|
validate_options() {
|
|
grep -shv -e '^[[:alnum:]_]\{1,\}=' "$@"
|
|
}
|