17e66ef00SMasami Hiramatsu#!/bin/sh 27e66ef00SMasami Hiramatsu# SPDX-License-Identifier: GPL-2.0-only 37e66ef00SMasami Hiramatsu 47e66ef00SMasami Hiramatsu# bootconfig utility functions 57e66ef00SMasami Hiramatsu 67e66ef00SMasami HiramatsuXBC_TMPFILE= 77e66ef00SMasami HiramatsuXBC_BASEDIR=`dirname $0` 87e66ef00SMasami HiramatsuBOOTCONFIG=${BOOTCONFIG:=$XBC_BASEDIR/../bootconfig} 97e66ef00SMasami Hiramatsuif [ ! -x "$BOOTCONFIG" ]; then 107e66ef00SMasami Hiramatsu BOOTCONFIG=`which bootconfig` 117e66ef00SMasami Hiramatsu if [ -z "$BOOTCONFIG" ]; then 127e66ef00SMasami Hiramatsu echo "Erorr: bootconfig command is not found" 1>&2 137e66ef00SMasami Hiramatsu exit 1 147e66ef00SMasami Hiramatsu fi 157e66ef00SMasami Hiramatsufi 167e66ef00SMasami Hiramatsu 177e66ef00SMasami Hiramatsuxbc_cleanup() { 187e66ef00SMasami Hiramatsu if [ "$XBC_TMPFILE" ]; then 197e66ef00SMasami Hiramatsu rm -f "$XBC_TMPFILE" 207e66ef00SMasami Hiramatsu fi 217e66ef00SMasami Hiramatsu} 227e66ef00SMasami Hiramatsu 237e66ef00SMasami Hiramatsuxbc_init() { # bootconfig-file 247e66ef00SMasami Hiramatsu xbc_cleanup 257e66ef00SMasami Hiramatsu XBC_TMPFILE=`mktemp bconf-XXXX` 267e66ef00SMasami Hiramatsu trap xbc_cleanup EXIT TERM 277e66ef00SMasami Hiramatsu 287e66ef00SMasami Hiramatsu $BOOTCONFIG -l $1 > $XBC_TMPFILE || exit 1 297e66ef00SMasami Hiramatsu} 307e66ef00SMasami Hiramatsu 317e66ef00SMasami Hiramatsunr_args() { # args 327e66ef00SMasami Hiramatsu echo $# 337e66ef00SMasami Hiramatsu} 347e66ef00SMasami Hiramatsu 357e66ef00SMasami Hiramatsuxbc_get_val() { # key [maxnum] 367e66ef00SMasami Hiramatsu if [ "$2" ]; then 377e66ef00SMasami Hiramatsu MAXOPT="-L $2" 387e66ef00SMasami Hiramatsu fi 397e66ef00SMasami Hiramatsu grep "^$1 =" $XBC_TMPFILE | cut -d= -f2- | \ 407e66ef00SMasami Hiramatsu sed -e 's/", /" /g' -e "s/',/' /g" | \ 417e66ef00SMasami Hiramatsu xargs $MAXOPT -n 1 echo 427e66ef00SMasami Hiramatsu} 437e66ef00SMasami Hiramatsu 447e66ef00SMasami Hiramatsuxbc_has_key() { # key 457e66ef00SMasami Hiramatsu grep -q "^$1 =" $XBC_TMPFILE 467e66ef00SMasami Hiramatsu} 477e66ef00SMasami Hiramatsu 487e66ef00SMasami Hiramatsuxbc_has_branch() { # prefix-key 497e66ef00SMasami Hiramatsu grep -q "^$1" $XBC_TMPFILE 507e66ef00SMasami Hiramatsu} 517e66ef00SMasami Hiramatsu 52*f134ebb2SMasami Hiramatsuxbc_subkeys() { # prefix-key depth [subkey-pattern] 537e66ef00SMasami Hiramatsu __keys=`echo $1 | sed "s/\./ /g"` 547e66ef00SMasami Hiramatsu __s=`nr_args $__keys` 55*f134ebb2SMasami Hiramatsu grep "^$1$3" $XBC_TMPFILE | cut -d= -f1| cut -d. -f$((__s + 1))-$((__s + $2)) | uniq 567e66ef00SMasami Hiramatsu} 57