1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/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
- }
|