On Fri, 12 Jun 2020 11:05:27 +0200
Gaƫtan Rivet <gr...@u256.net> wrote:

> On 24/02/20 13:01 -0800, Stephen Hemminger wrote:
> > Simple script to look for drivers and scripts that
> > are missing requires SPDX header.
> > 
> > Update the contribution guidelines to indicate that SPDX license
> > identfier is required for this project.
> > 
> > Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
> > ---
> > v4 - add MAINTAINERS entry
> >      update coding style document
> >      change name of script
> > 
> >  MAINTAINERS                              |  1 +
> >  devtools/check-spdx-tag.sh               | 77 ++++++++++++++++++++++++
> >  doc/guides/contributing/coding_style.rst |  9 ++-
> >  3 files changed, 85 insertions(+), 2 deletions(-)
> >  create mode 100755 devtools/check-spdx-tag.sh
> > 
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 3d5e8d1104b2..6b0e042c5fbb 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -96,6 +96,7 @@ F: devtools/check-maintainers.sh
> >  F: devtools/check-forbidden-tokens.awk
> >  F: devtools/check-git-log.sh
> >  F: devtools/check-includes.sh
> > +F: devtools/check-spdx-tag.sh
> >  F: devtools/check-symbol-maps.sh
> >  F: devtools/checkpatches.sh
> >  F: devtools/get-maintainer.sh
> > diff --git a/devtools/check-spdx-tag.sh b/devtools/check-spdx-tag.sh
> > new file mode 100755
> > index 000000000000..b1b8cdba4e4e
> > --- /dev/null
> > +++ b/devtools/check-spdx-tag.sh
> > @@ -0,0 +1,77 @@
> > +#! /bin/sh
> > +# SPDX-License-Identifier: BSD-3-Clause
> > +# Copyright (c) 2019 Microsoft Corporation
> > +#
> > +# Produce a list of files with incorrect license tags
> > +
> > +print_usage () {
> > +    echo "usage: $(basename $0) [-q] [-v]"
> > +    exit 1
> > +}
> > +
> > +check_spdx() {
> > +    if  $verbose;  then
> > +   echo "Files without SPDX License"
> > +   echo "--------------------------"
> > +    fi
> > +    git grep -L SPDX-License-Identifier -- \
> > +   ':^.git*' ':^.ci/*' ':^.travis.yml' \
> > +   ':^README' ':^MAINTAINERS' ':^VERSION' ':^ABI_VERSION' \
> > +   ':^*/Kbuild' ':^*/README' \
> > +   ':^license/' ':^doc/' ':^config/' ':^buildtools/' \
> > +   ':^*.cocci' ':^*.abignore' \
> > +   ':^*.def' ':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \
> > +   > $tmpfile  
> 
> I find it easier to maintain an exclude list by setting a variable and
> generating the relevant parameters:
> 
>     excludes='.git* .ci/* .travis.yml */Kbuild */README'
>     exclude_opt=""
>     set -f
>     for pattern in $excludes; do
>         exclude_opt="$exclude_opt ':^${pattern}'"
>     done
>     set +f
>     printf "\"%s\"\n" "$exclude_opt"
> 
> However I recognize that means dealing with contrarian globbing issues in 
> shells,
> so it comes at a price. But I find changing the exclude list much easier that 
> way.

This is no easier to maintain. Doing more string stuff in shell
is not worth it. If gets to be too much trouble, will consider moving
to python3.

Reply via email to