| #!/bin/sh |
| # |
| # loc Find a class or package |
| # |
| # Usage: loc [-l] class-pattern [dirname] |
| |
| # -l Use system locate command instead of find. In that case, loc |
| # will ignore any directory to be searched. |
| |
| # Example: |
| # |
| # $ loc -l org.objectweb.jonas.common.JProp |
| # /var/lib/jonas/demoserver/ejbjars/autoload/mejb.jar |
| # /var/lib/jonas/lib/common/ow_jonas_bootstrap.jar |
| # /var/lib/jonas/eclipseserver/ejbjars/autoload/mejb.jar |
| # /var/lib/jonas/ejbjars/autoload/mejb.jar |
| # /var/cache/jonas/work/ejbjars/jonas/mejb_2005.09.15-17.01.52.jar |
| # /usr/src/redhat/BUILD/jonas-4.3.3/jonas/classes/common/org/objectweb/jonas/common/JProp.class |
| |
| |
| MODE=$1 |
| if test "$MODE" == "-l"; then |
| COMMAND='(locate \*.jar ; locate \*.war)' |
| shift |
| else |
| COMMAND='(find "$FOO" -name \*.jar -follow ; find "$FOO" -name \*.war -follow)' |
| fi |
| |
| FOO=$2 |
| if test "x$FOO" == "x"; then |
| FOO=/usr/share/java |
| fi |
| |
| eval "$COMMAND" 2>/dev/null | while read i; do |
| if (fastjar tf $i 2>/dev/null | grep $1) > /dev/null 2>&1 ; then |
| echo $i |
| fi |
| done |
| |
| if test "$MODE" != "-l"; then |
| find "$FOO" -name '*.class' 2>/dev/null | grep $1 |
| else |
| locate \*.class | grep $1 |
| fi |