On Thu, 13 Aug 2020 21:01:00 -0400
Steven Rostedt <[email protected]> wrote:

> On Mon, 10 Aug 2020 17:35:11 +0900
> Masami Hiramatsu <[email protected]> wrote:
> 
> 
> > --- /dev/null
> > +++ b/tools/bootconfig/scripts/xbc.sh
> > @@ -0,0 +1,56 @@
> > +#!/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
> 
> Should the above be:
> 
>       if [ -f "$XBC_TMPFILE" ]; then
> ?

Ah, good catch!
I didn't call xbc_cleanup except for the trap in bconf2ftrace,
but for user who call xbc_cleanup explicitly, we need -f.

Thank you!

> 
> 
> -- Steve
> 
> > +           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
> > +   __keys=`echo $1 | sed "s/\./ /g"`
> > +   __s=`nr_args $__keys`
> > +   grep "^$1" $XBC_TMPFILE | cut -d= -f1| cut -d. -f$((__s + 1))-$((__s + 
> > $2)) | uniq
> > +}
> 


-- 
Masami Hiramatsu <[email protected]>

Reply via email to