aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-07-26 22:52:44 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-07-26 22:52:44 +0000
commita60ff2e14485aa3baec2088f5663d3e25cb74992 (patch)
tree0c7f634183df07dc7883e96a7be19b1bc51dbaae
parentab640a572827b40eebc9963f3f409cf3ea273d46 (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15246 91177308-0d34-0410-b5e6-96231b3b80d8
-rwxr-xr-xutils/llvmdo31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/llvmdo b/utils/llvmdo
new file mode 100755
index 0000000000..b94328e75a
--- /dev/null
+++ b/utils/llvmdo
@@ -0,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