[dpdk-dev] [PATCH 01/19] devtools: add simple script to find duplicate includes

Thomas Monjalon thomas at monjalon.net
Thu Jul 13 08:56:15 CEST 2017


12/07/2017 23:59, Stephen Hemminger:
> On Tue, 11 Jul 2017 22:33:55 +0200
> Thomas Monjalon <thomas at monjalon.net> wrote:
> 
> > Thank you for this script, but... it is written in Perl!
> > I don't think it is a good idea to add yet another language to DPDK.
> > We already have shell and python scripts.
> > And I am not sure a lot of (young) people are able to parse it ;)
> > 
> > I would like to propose this shell script:
> > 
> > dirs='app buildtools drivers examples lib test'
> > pattern='^[[:space:]]*#include[[:space:]]*[<"](.*)[>"].*'
> > 
> > for file in $(git ls $dirs) ; do
> >     dups=$(sed -rn "s,$pattern,\1,p" $file | sort | uniq -d)
> >     [ -n "$dups" ] || continue
> >     echo "$file"
> >     echo "$dups" | sed 's,^,\t,'
> > done
> 
> There is no "git ls" command in current version, 
> 
> Using find instead works.

Yes, both work if specifying source code directories as above.

> plus shell is 7x slower.
> 
> $ time bash -c "find . -name '*.c' | xargs /tmp/dupinc.sh"
> real	0m0.765s
> user	0m1.220s
> sys	0m0.155s
> $time bash -c "find . -name '*.c' | xargs ~/bin/dup_inc.pl"
> real	0m0.131s
> user	0m0.118s
> sys	0m0.014s

I don't think speed is really relevant here :)

> How about some python code.

I don't really care between shell or python.
I thought a shell script would be really concise
and without Python 2/3 compat issues.


More information about the dev mailing list