[llvm-commits] CVS: llvm/utils/llvmdo

LLVM llvm at cs.uiuc.edu
Mon Jul 26 15:52:55 PDT 2004



Changes in directory llvm/utils:

llvmdo added (r1.1)

---
Log message:

A utility to run an arbitrary program on each of the LLVM source files. 
This is like llvmgrep but instead of running grep, it runs the command
given by the first argument. For example, to find the top ten files with 
the most lines in llvm, you could:

utils/llvmdo wc -l | sort -nb | tail

Or, to find any source files with the wrong permissions, you could:

utils/llvmdo ls -l | grep -v rw-r--r--

Hopefully, you get the idea.



---
Diffs of the changes:  (+31 -0)

Index: llvm/utils/llvmdo
diff -c /dev/null llvm/utils/llvmdo:1.1
*** /dev/null	Mon Jul 26 17:52:54 2004
--- llvm/utils/llvmdo	Mon Jul 26 17:52:44 2004
***************
*** 0 ****
--- 1,31 ----
+ #!/bin/sh
+ # This is useful because it prints out all of the source files.  Useful for
+ # greps.
+ PROGRAM=`which $1`
+ if [ ! -x "$PROGRAM" ]; then
+   echo "Can't execute $1"
+   exit 1
+ fi
+ shift;
+ ARGS="$*"
+ TOPDIR=`pwd | sed -e 's#(.*/llvm).*#$1#'`
+ if test -d "$TOPDIR" ; then
+   cd $TOPDIR
+   echo $TOPDIR
+   find docs include lib tools utils projects -type f \
+       \( -path '*/doxygen/*' -o -path '*/Burg/*' \) -prune -o \
+       -name '*.[cdhyl]*' \
+       \! -name '*~' \
+       \! -name '#*' \
+       \! -name '*.ll' \
+       \! -name '*.d' \
+       \! -name '*.dir' \
+       \! -name 'Sparc.burm.c' \
+       \! -name 'llvmAsmParser.cpp' \
+       \! -name 'llvmAsmParser.h' \
+       \! -name 'FileParser.cpp' \
+       \! -name 'FileParser.h' \
+       -exec $PROGRAM $ARGS {} \;
+ else
+   echo "Can't find LLVM top directory in $TOPDIR"
+ fi





More information about the llvm-commits mailing list