mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.1 KiB
56 lines
1.1 KiB
#!/bin/sh |
|
# SPDX-License-Identifier: GPL-2.0-only |
|
|
|
# bootconfig utility functions |
|
|
|
XBC_TMPFILE= |
|
XBC_BASEDIR=`dirname $0` |
|
BOOTCONFIG=${BOOTCONFIG:=$XBC_BASEDIR/../bootconfig} |
|
if [ ! -x "$BOOTCONFIG" ]; then |
|
BOOTCONFIG=`which bootconfig` |
|
if [ -z "$BOOTCONFIG" ]; then |
|
echo "Erorr: bootconfig command is not found" 1>&2 |
|
exit 1 |
|
fi |
|
fi |
|
|
|
xbc_cleanup() { |
|
if [ "$XBC_TMPFILE" ]; then |
|
rm -f "$XBC_TMPFILE" |
|
fi |
|
} |
|
|
|
xbc_init() { # bootconfig-file |
|
xbc_cleanup |
|
XBC_TMPFILE=`mktemp bconf-XXXX` |
|
trap xbc_cleanup EXIT TERM |
|
|
|
$BOOTCONFIG -l $1 > $XBC_TMPFILE || exit 1 |
|
} |
|
|
|
nr_args() { # args |
|
echo $# |
|
} |
|
|
|
xbc_get_val() { # key [maxnum] |
|
if [ "$2" ]; then |
|
MAXOPT="-L $2" |
|
fi |
|
grep "^$1 =" $XBC_TMPFILE | cut -d= -f2- | \ |
|
sed -e 's/", /" /g' -e "s/',/' /g" | \ |
|
xargs $MAXOPT -n 1 echo |
|
} |
|
|
|
xbc_has_key() { # key |
|
grep -q "^$1 =" $XBC_TMPFILE |
|
} |
|
|
|
xbc_has_branch() { # prefix-key |
|
grep -q "^$1" $XBC_TMPFILE |
|
} |
|
|
|
xbc_subkeys() { # prefix-key depth [subkey-pattern] |
|
__keys=`echo $1 | sed "s/\./ /g"` |
|
__s=`nr_args $__keys` |
|
grep "^$1$3" $XBC_TMPFILE | cut -d= -f1| cut -d. -f$((__s + 1))-$((__s + $2)) | uniq |
|
}
|
|
|