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

Wiles, Keith keith.wiles at intel.com
Thu Jul 13 14:19:41 CEST 2017


> On Jul 13, 2017, at 1:56 AM, Thomas Monjalon <thomas at monjalon.net> wrote:
> 
> 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.

‘git ls’ I had to change it to ‘git ls-files’ to make it work. I think you have a git alias setup for ls-files.

Can this be added to the patch testing?

> 
>> 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.

Regards,
Keith



More information about the dev mailing list