On Sat, Oct 30, 2021 at 11:33:22PM -0700, Randy Dunlap wrote: > Support "O=config-dir" as the location of the .config file > like (some) other kernel build (make) tools do. > > Someone asked for this "feature" a few months ago but I don't > recall who it was. > > Also check for the existence of the config-dir/config-file > and report if there is no such file instead of letting grep > report that there is no such file. > > Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx> > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Cc: linux-kbuild@xxxxxxxxxxxxxxx > Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx> > --- > scripts/config | 44 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 39 insertions(+), 5 deletions(-) > > --- linux-next-20211029.orig/scripts/config > +++ linux-next-20211029/scripts/config > @@ -37,6 +37,7 @@ commands: > > options: > --file config-file .config file to change (default .config) > + O=config-dir Specify the directory location of the config-file > --keep-case|-k Keep next symbols' case (dont' upper-case it) > > $myname doesn't check the validity of the .config file. This is done at next > @@ -124,15 +125,48 @@ undef_var() { > txt_delete "^# $name is not set" "$FN" > } > > -if [ "$1" = "--file" ]; then > - FN="$2" > - if [ "$FN" = "" ] ; then > +DIR= > +FN= > + > +while [ "$DIR" = "" -o "$FN" = "" ]; do shellcheck recommends to use [ .. ] || [ .. ] instead of [ .. -o .. ]. > + > + if [ "$1" = "" ] ; then > usage > fi > - shift 2 > -else > + if [ "$1" = "--file" ]; then > + FN="$2" > + if [ "$FN" = "" ] ; then > + usage > + fi > + shift 2 > + continue > + fi > + > + optn=$1 > + optnlen=${#optn} > + if [ $optnlen -gt 1 ] && [ ${optn:0:2} = "O=" ]; then > + DIR=${optn:2} > + shift > + if [ "$DIR" = "" ]; then > + usage > + fi > + continue > + fi > + break # something other than --file or O=dir > +done > + > +if [ "$FN" = "" ]; then > FN=.config > fi > +if [ "$DIR" != "" ]; then > + DIR=$DIR"/" > +fi > +FN="$DIR""$FN" A bike shed colour thing: I'd prefer quotes around the complete right hand side, e.g. "${DIR}/${FN}". > + > +if [ ! -r $FN ]; then ^^^ $FN needs quotes, otherwise it may lead to syntax errors, e.g. if FN contains spaces or other syntactical things. I do like that feature! With quotes round $FN: Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx> > + echo "No such config file: $FN" > + exit > +fi > > if [ "$1" = "" ] ; then > usage