llvmgrep revision ca7592a1ba86854a1f9ba2b3e442427bed20d5bc
12d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencer#!/bin/sh 2181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===- utils/llvmgrep - Counts Lines Of Code -----------------*- Script -*-===## 3181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 4181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# The LLVM Compiler Infrastructure 5181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 6181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# This file was developed by Reid Spencer and is distributed under the 7181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# University of Illinois Open Source License. See LICENSE.TXT for details. 8181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 9181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===----------------------------------------------------------------------===## 10181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 11181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# This script searches your srcdir for an egrep style pattern. This can quickly 12181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# help you build a list of the places you need to modify when changing a header 13181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# or other "global" name. The only argument is the pattern you want to search 14181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# for. It should be quoted to escape shell interpretation of the pattern's 15181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# special characters. 16181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# 17181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# Note that the implementation is based on llvmdo. See that script for more 18181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer# details. 19181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer##===----------------------------------------------------------------------===## 20181e65dff10d7c06ae61e35f79003ea79186635eReid Spencer 21ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencerif test $# -gt 1 ; then 22ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer if test "$1" = "-topdir" ; then 23ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer TOPDIR="$2" 24ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer shift; shift; 25ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer else 26ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer TOPDIR=`llvm-config --src-root` 27ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer fi 28ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencerfi 29ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer 302d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencerif test -d "$TOPDIR" ; then 312d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencer cd $TOPDIR 32054defa74604dcc88db7ce9175122de785992b7bReid Spencer case `uname -s` in 33054defa74604dcc88db7ce9175122de785992b7bReid Spencer SunOS) grep_cmd="ggrep -H -n" ;; 34054defa74604dcc88db7ce9175122de785992b7bReid Spencer Linux) grep_cmd="egrep -H -n" ;; 35054defa74604dcc88db7ce9175122de785992b7bReid Spencer *) grep_cmd="egrep -l -n" ;; 36054defa74604dcc88db7ce9175122de785992b7bReid Spencer esac 37ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer ./utils/llvmdo -topdir "$TOPDIR" \ 38ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer -dirs "include lib tools utils docs examples test projects" $grep_cmd "$*" 3923a354d1f1e3c9f7232e9b809541f4393c6eb774Reid Spencerelse 40ca7592a1ba86854a1f9ba2b3e442427bed20d5bcReid Spencer echo "Can't find LLVM top directory" 412d67208306d7b3cc183265832b85cb0f4cf7cc37Reid Spencerfi 42