summaryrefslogtreecommitdiff
path: root/utils/llvmdo
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-09-20 07:21:19 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-09-20 07:21:19 +0000
commit8141e371098c5d1b01e5e604e22bb2d58ae59402 (patch)
tree71ed0ecc62c5807293c4d2b83094cb15b1e0136e /utils/llvmdo
parent7b6ec600c50e88112835021988b823973fbd7d36 (diff)
downloadllvm-8141e371098c5d1b01e5e604e22bb2d58ae59402.tar.gz
llvm-8141e371098c5d1b01e5e604e22bb2d58ae59402.tar.bz2
llvm-8141e371098c5d1b01e5e604e22bb2d58ae59402.tar.xz
Fixed to actually work correctly and be the basis for other tools by
allowing the set of directories searched to be specified either by the LLVMDO_DIRS env var or by the -dirs "dirs..." command line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16441 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/llvmdo')
-rwxr-xr-xutils/llvmdo48
1 files changed, 39 insertions, 9 deletions
diff --git a/utils/llvmdo b/utils/llvmdo
index 5127fc51b8..22c708b58e 100755
--- a/utils/llvmdo
+++ b/utils/llvmdo
@@ -1,32 +1,62 @@
#!/bin/sh
# This is useful because it prints out all of the source files. Useful for
# greps.
+
+if test $# -lt 1 ; then
+ echo "Usage: llvmdo [-dirs "DIRNAMES..."] PROGRAM ARGS...";
+ exit 1;
+fi
+
+if test "$1" = "-dirs" ; then
+ LLVMDO_DIRS="$2";
+ shift ; shift
+elif test -z "$LLVMDO_DIRS" ; then
+ LLVMDO_DIRS="include lib tools test utils docs examples projects"
+fi
PROGRAM=`which $1`
-if [ ! -x "$PROGRAM" ]; then
+if test ! -x "$PROGRAM" ; then
echo "Can't execute $1"
exit 1
fi
shift;
ARGS="$*"
-TOPDIR=`pwd | sed -e 's#(.*/llvm).*#$1#'`
+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]*' \
+ find $LLVMDO_DIRS -type f \
+ \( \
+ -path 'docs/doxygen/*' -o \
+ -path 'docs/CommandGuide/html/*' -o \
+ -path 'docs/CommandGuide/man/*' -o \
+ -path 'docs/CommandGuide/ps/*' -o \
+ -path 'docs/CommandGuide/man/*' -o \
+ -path 'docs/HistoricalNotes/*' -o \
+ -path 'utils/Burg/*' -o \
+ -path 'docs/img/*' -o \
+ -path '*/.libs/*' \
+ \) -prune -o \( \
+ -name '*.[cdhyltp]*' \
+ \! -name '.*' \
\! -name '*~' \
\! -name '#*' \
- \! -name '*.ll' \
- \! -name '*.lo' \
\! -name '*.d' \
\! -name '*.dir' \
+ \! -name '*.flc' \
+ \! -name '*.inc' \
+ \! -name '*.ll' \
+ \! -name '*.llx' \
+ \! -name '*.la' \
+ \! -name '*.lo' \
\! -name 'Sparc.burm.c' \
\! -name 'llvmAsmParser.cpp' \
\! -name 'llvmAsmParser.h' \
\! -name 'FileParser.cpp' \
\! -name 'FileParser.h' \
- -exec $PROGRAM $ARGS {} \;
+ \! -name 'StackerParser.h' \
+ \! -name 'StackerParser.cpp' \
+ -exec $PROGRAM $ARGS {} \; \
+ \)
else
echo "Can't find LLVM top directory in $TOPDIR"
fi
+