Re: [PATCH 4/6] tools/bootconfig: Add a script to generate ftrace shell-command from bootconfig

From: Masami Hiramatsu
Date: Sat Aug 15 2020 - 18:12:24 EST


On Thu, 13 Aug 2020 21:01:00 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Mon, 10 Aug 2020 17:35:11 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> 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 <mhiramat@xxxxxxxxxx>