1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
# Shell script fragment to infer the location of
# $FINDBUGS_HOME and assign it to the findbugs_home shell
# variable. Also sets the fb_osname shell variable,
# as the output of uname.
script.get.fbhome=\
program="$0"\n\
\n\
# Follow symlinks until we get to the actual file.\n\
while [ -h "$program" ]; do\n\
\tlink=`ls -ld "$program"`\n\
\tlink=`expr "$link" : '.*-> \\(.*\\)'`\n\
\tif [ "`expr "$link" : '/.*'`" = 0 ]; then\n\
\t\t# Relative\n\
\t\tdir=`dirname "$program"`\n\
\t\tprogram="$dir/$link"\n\
\telse\n\
\t\t# Absolute\n\
\t\tprogram="$link"\n\
\tfi\n\
done\n\
\n\
# Assume findbugs home directory is the parent\n\
# of the directory containing the script (which should\n\
# normally be "$findbugs_home/bin").\n\
dir=`dirname "$program"`\n\
findbugs_home="$dir/.."\n\
\n\
# Handle FHS-compliant installations (e.g., Fink)\n\
if [ -d "$findbugs_home/share/findbugs" ]; then\n\
\tfindbugs_home="$findbugs_home/share/findbugs"\n\
fi\n\
\n\
# Make absolute\n\
findbugs_home=`cd "$findbugs_home" && pwd`\n\
\n\
fb_pathsep=':'\n\
\n\
# Handle cygwin, courtesy of Peter D. Stout\n\
fb_osname=`uname`\n\
if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then\n\
\tfindbugs_home=`cygpath --mixed "$findbugs_home"`\n\
\tfb_pathsep=';'\n\
fi\n\
# Handle MKS, courtesy of Kelly O'Hair\n\
if [ "${fb_osname}" = "Windows_NT" ]; then\n\
\tfb_pathsep=';'\n\
fi\n\
\n\
if [ ! -d "$findbugs_home" ]; then\n\
\techo "The path $findbugs_home,"\n\
\techo "which is where I think FindBugs is located,"\n\
\techo "does not seem to be a directory."\n\
\texit 1\n\
fi
# Define the escape_arg function, which turns an arbitrary string into
# a escaped version that may be appended to an argument list.
# No quotes should be used in the construction of the
# argument list string. Escapes (backslashes) are added where needed
# to preserve spaces, quote characters, and special characters inside
# the single argument being added.
#
# Usage:
# my_args="$my_args `escape_arg "$first_arg"`"
# my_args="$my_args `escape_arg "$second_arg"`"
# ...
# exec java -Xmx584m $main_class $my_args
#
# Bourne shell programming really, really sucks.
script.define.escape_arg=\
escape_arg() {\n\
\techo "$1" | sed -e "s,\\\\([\\\\\\"' \t]\\\\),\\\\\\\\\\\\1,g"\n\
}
# Pick a default Java executable.
# This should be done before executing any code that
# could override fb_javacmd.
script.set.default.java=\
. /usr/lib/java-wrappers/java-wrappers.sh\n\
find_jars dom4j junit4 commons-lang jaxen jdepend asm3 asm3-commons asm3-tree ant jcip jsr305 jFormatString findbugs-bcel\n\
export CLASSPATH=$JAVA_CLASSPATH\n\
# Choose default java binary\n\
fb_javacmd=java\n\
if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then\n\
\tif [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then\n\
\t\tfb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java\n\
\telse\n\
\t\tfb_javacmd="$JAVA_HOME/bin/java"\n\
\tfi\n\
fi
# Fragment to execute java, using the arguments stored
# in the shell's $@ variable (and/or in the $fb_appargs variable).
# Unless fb_appjar is specified, assumes the class to be executed
# is in $findbugs_home/lib/findbugs.jar.
script.wrap.java=\
fb_javacmd=\${fb_javacmd:-"java"}\n\
fb_maxheap=\${fb_maxheap:-"-Xmx768m"}\n\
fb_appjar=\${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}\n\
set -f\n\
#echo command: \\\n\
exec "$fb_javacmd" \\\n\
\t-classpath "$fb_appjar$fb_pathsep$CLASSPATH" \\\n\
\t-Dfindbugs.home="$findbugs_home"\\\n\
\t$fb_maxheap $fb_jvmargs $fb_mainclass \${@:+"$@"} $fb_appargs
# Fragment to execute java, using -jar $fb_appjar.
script.wrap.jar=\
fb_javacmd=\${fb_javacmd:-"java"}\n\
fb_maxheap=\${fb_maxheap:-"-Xmx768m"}\n\
fb_appjar=\${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}\n\
set -f\n\
#echo command: \\\n\
exec "$fb_javacmd" \\\n\
\t-Dfindbugs.home="$findbugs_home"\\\n\
\t$fb_maxheap $fb_jvmargs \\\n\
\t-jar "$fb_appjar"\\\n\
\t\${@:+"$@"} $fb_appargs
|