From bf4651aa665ab3fba13d2faa9c9b50f3d2693a16 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 26 Jul 2004 22:52:44 +0000 Subject: [PATCH] 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. llvm-svn: 15246 --- utils/llvmdo | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 utils/llvmdo diff --git a/utils/llvmdo b/utils/llvmdo new file mode 100755 index 00000000000..b94328e75a7 --- /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