summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2005-09-16 16:48:02 +0000
committerAndrew Haley <aph@redhat.com>2005-09-16 16:48:02 +0000
commit2498b5747ed1aba61173027117eacfd9d0f66743 (patch)
tree49ddc1a2d304829b3d6479d50edee5a64b96363e /scripts
parent81bac5ca74af73c93eac14045753d161ef0e483e (diff)
downloadclasspath-2498b5747ed1aba61173027117eacfd9d0f66743.tar.gz
2005-09-16 Andrew Haley <aph@redhat.com>
* scripts/loc: New file.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/loc44
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/loc b/scripts/loc
new file mode 100755
index 000000000..dc2f32703
--- /dev/null
+++ b/scripts/loc
@@ -0,0 +1,44 @@
+#!/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