18c2ecf20Sopenharmony_ci#!/bin/sh 28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci# bootconfig utility functions 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciXBC_TMPFILE= 78c2ecf20Sopenharmony_ciXBC_BASEDIR=`dirname $0` 88c2ecf20Sopenharmony_ciBOOTCONFIG=${BOOTCONFIG:=$XBC_BASEDIR/../bootconfig} 98c2ecf20Sopenharmony_ciif [ ! -x "$BOOTCONFIG" ]; then 108c2ecf20Sopenharmony_ci BOOTCONFIG=`which bootconfig` 118c2ecf20Sopenharmony_ci if [ -z "$BOOTCONFIG" ]; then 128c2ecf20Sopenharmony_ci echo "Erorr: bootconfig command is not found" 1>&2 138c2ecf20Sopenharmony_ci exit 1 148c2ecf20Sopenharmony_ci fi 158c2ecf20Sopenharmony_cifi 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cixbc_cleanup() { 188c2ecf20Sopenharmony_ci if [ "$XBC_TMPFILE" ]; then 198c2ecf20Sopenharmony_ci rm -f "$XBC_TMPFILE" 208c2ecf20Sopenharmony_ci fi 218c2ecf20Sopenharmony_ci} 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cixbc_init() { # bootconfig-file 248c2ecf20Sopenharmony_ci xbc_cleanup 258c2ecf20Sopenharmony_ci XBC_TMPFILE=`mktemp bconf-XXXX` 268c2ecf20Sopenharmony_ci trap xbc_cleanup EXIT TERM 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci $BOOTCONFIG -l $1 > $XBC_TMPFILE || exit 1 298c2ecf20Sopenharmony_ci} 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cinr_args() { # args 328c2ecf20Sopenharmony_ci echo $# 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cixbc_get_val() { # key [maxnum] 368c2ecf20Sopenharmony_ci if [ "$2" ]; then 378c2ecf20Sopenharmony_ci MAXOPT="-L $2" 388c2ecf20Sopenharmony_ci fi 398c2ecf20Sopenharmony_ci grep "^$1 =" $XBC_TMPFILE | cut -d= -f2- | \ 408c2ecf20Sopenharmony_ci sed -e 's/", /" /g' -e "s/',/' /g" | \ 418c2ecf20Sopenharmony_ci xargs $MAXOPT -n 1 echo 428c2ecf20Sopenharmony_ci} 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cixbc_has_key() { # key 458c2ecf20Sopenharmony_ci grep -q "^$1 =" $XBC_TMPFILE 468c2ecf20Sopenharmony_ci} 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_cixbc_has_branch() { # prefix-key 498c2ecf20Sopenharmony_ci grep -q "^$1" $XBC_TMPFILE 508c2ecf20Sopenharmony_ci} 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_cixbc_subkeys() { # prefix-key depth 538c2ecf20Sopenharmony_ci __keys=`echo $1 | sed "s/\./ /g"` 548c2ecf20Sopenharmony_ci __s=`nr_args $__keys` 558c2ecf20Sopenharmony_ci grep "^$1" $XBC_TMPFILE | cut -d= -f1| cut -d. -f$((__s + 1))-$((__s + $2)) | uniq 568c2ecf20Sopenharmony_ci} 57