OSDN Git Service

Merged gcj-eclipse branch to trunk.
[pf3gnuchains/gcc-fork.git] / libjava / classpath / scripts / loc
1 #!/bin/sh
2 #
3 # loc   Find a class or package
4 #
5 # Usage:  loc [-l] class-pattern [dirname]
6
7 #    -l    Use system locate command instead of find.  In that case, loc
8 #          will ignore any directory to be searched.
9
10 # Example:
11 #
12 #     $ loc -l org.objectweb.jonas.common.JProp
13 #     /var/lib/jonas/demoserver/ejbjars/autoload/mejb.jar
14 #     /var/lib/jonas/lib/common/ow_jonas_bootstrap.jar
15 #     /var/lib/jonas/eclipseserver/ejbjars/autoload/mejb.jar
16 #     /var/lib/jonas/ejbjars/autoload/mejb.jar
17 #     /var/cache/jonas/work/ejbjars/jonas/mejb_2005.09.15-17.01.52.jar
18 #     /usr/src/redhat/BUILD/jonas-4.3.3/jonas/classes/common/org/objectweb/jonas/common/JProp.class
19
20
21 MODE=$1
22 if test "$MODE" == "-l"; then
23     COMMAND='(locate \*.jar ; locate \*.war)'
24     shift
25 else
26     COMMAND='(find "$FOO" -name \*.jar -follow ; find "$FOO" -name \*.war -follow)'
27 fi
28
29 FOO=$2
30 if test "x$FOO" == "x"; then
31     FOO=/usr/share/java
32 fi
33
34 eval "$COMMAND" 2>/dev/null | while read i; do
35     if (fastjar tf $i 2>/dev/null | grep $1) > /dev/null 2>&1 ; then
36         echo $i
37     fi
38 done
39
40 if test "$MODE" != "-l"; then
41     find "$FOO" -name '*.class' 2>/dev/null | grep $1
42 else
43     locate \*.class | grep $1
44 fi