192 lines
3.9 KiB
Bash
Executable file
192 lines
3.9 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
# Launch FindBugs from the command line.
|
|
|
|
escape_arg() {
|
|
echo "$1" | sed -e "s,\\([\\\"' ]\\),\\\\\\1,g"
|
|
}
|
|
|
|
program="$0"
|
|
|
|
# Follow symlinks until we get to the actual file.
|
|
while [ -h "$program" ]; do
|
|
link=`ls -ld "$program"`
|
|
link=`expr "$link" : '.*-> \(.*\)'`
|
|
if [ "`expr "$link" : '/.*'`" = 0 ]; then
|
|
# Relative
|
|
dir=`dirname "$program"`
|
|
program="$dir/$link"
|
|
else
|
|
# Absolute
|
|
program="$link"
|
|
fi
|
|
done
|
|
|
|
# Assume findbugs home directory is the parent
|
|
# of the directory containing the script (which should
|
|
# normally be "$findbugs_home/bin").
|
|
dir=`dirname "$program"`
|
|
findbugs_home="$dir/.."
|
|
|
|
# Handle FHS-compliant installations (e.g., Fink)
|
|
if [ -d "$findbugs_home/share/findbugs" ]; then
|
|
findbugs_home="$findbugs_home/share/findbugs"
|
|
fi
|
|
|
|
# Make absolute
|
|
findbugs_home=`cd "$findbugs_home" && pwd`
|
|
|
|
fb_pathsep=':'
|
|
|
|
# Handle cygwin, courtesy of Peter D. Stout
|
|
fb_osname=`uname`
|
|
if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
|
|
findbugs_home=`cygpath --mixed "$findbugs_home"`
|
|
fb_pathsep=';'
|
|
fi
|
|
# Handle MKS, courtesy of Kelly O'Hair
|
|
if [ "${fb_osname}" = "Windows_NT" ]; then
|
|
fb_pathsep=';'
|
|
fi
|
|
|
|
if [ ! -d "$findbugs_home" ]; then
|
|
echo "The path $findbugs_home,"
|
|
echo "which is where I think FindBugs is located,"
|
|
echo "does not seem to be a directory."
|
|
exit 1
|
|
fi
|
|
|
|
# Choose default java binary
|
|
fb_javacmd=java
|
|
if [ ! -z "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
|
|
if [ `expr "$fb_osname" : CYGWIN` -ne 0 ]; then
|
|
fb_javacmd=`cygpath --mixed "$JAVA_HOME"`/bin/java
|
|
else
|
|
fb_javacmd="$JAVA_HOME/bin/java"
|
|
fi
|
|
fi
|
|
|
|
|
|
fb_appjar="$findbugs_home/lib/findbugs.jar"
|
|
|
|
ShowHelpAndExit() {
|
|
fb_mainclass="edu.umd.cs.findbugs.ShowHelp"
|
|
fb_javacmd=${fb_javacmd:-"java"}
|
|
fb_maxheap=${fb_maxheap:-"-Xmx768m"}
|
|
fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
|
|
set -f
|
|
#echo command: \
|
|
exec "$fb_javacmd" \
|
|
-classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
|
|
-Dfindbugs.home="$findbugs_home"\
|
|
$fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
|
|
exit 0
|
|
}
|
|
|
|
# Set defaults
|
|
fb_mainclass="edu.umd.cs.findbugs.workflow.FB"
|
|
user_jvmargs=''
|
|
ea_arg=''
|
|
debug_arg=''
|
|
conservespace_arg=''
|
|
workhard_arg=''
|
|
user_props=''
|
|
|
|
# Handle command line arguments.
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
-textui)
|
|
fb_mainclass="edu.umd.cs.findbugs.FindBugs2"
|
|
;;
|
|
|
|
-jvmArgs)
|
|
shift
|
|
user_jvmargs="$1"
|
|
;;
|
|
|
|
-ea)
|
|
ea_arg='-ea'
|
|
;;
|
|
|
|
-maxHeap)
|
|
shift
|
|
fb_maxheap="-Xmx$1m"
|
|
;;
|
|
|
|
-javahome)
|
|
shift
|
|
fb_javacmd="$1/bin/java"
|
|
;;
|
|
|
|
-debug)
|
|
debug_arg="-Dfindbugs.debug=true"
|
|
;;
|
|
|
|
-conserveSpace)
|
|
conservespace_arg="-Dfindbugs.conserveSpace=true"
|
|
;;
|
|
|
|
-property)
|
|
shift
|
|
user_props="-D$1 $user_props"
|
|
;;
|
|
|
|
-D*=*)
|
|
user_props="$1 $user_props"
|
|
;;
|
|
|
|
-version)
|
|
fb_mainclass=edu.umd.cs.findbugs.Version
|
|
fb_appargs="-release"
|
|
while [ $# -gt 0 ]; do
|
|
shift
|
|
done
|
|
fb_javacmd=${fb_javacmd:-"java"}
|
|
fb_maxheap=${fb_maxheap:-"-Xmx768m"}
|
|
fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
|
|
set -f
|
|
#echo command: \
|
|
exec "$fb_javacmd" \
|
|
-classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
|
|
-Dfindbugs.home="$findbugs_home"\
|
|
$fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
|
|
exit 0
|
|
;;
|
|
|
|
-help)
|
|
ShowHelpAndExit
|
|
;;
|
|
|
|
# All unrecognized arguments will be accumulated and
|
|
# passed to the application.
|
|
*)
|
|
fb_appargs="$fb_appargs `escape_arg "$1"`"
|
|
;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
|
|
fb_jvmargs="$user_jvmargs $debug_arg $conservespace_arg $workhard_arg $user_props $ea_arg"
|
|
if [ $maxheap ]; then
|
|
fb_maxheap="-Xmx${maxheap}m"
|
|
fi
|
|
|
|
# Extra JVM args for MacOSX.
|
|
if [ $fb_osname = "Darwin" ]; then
|
|
fb_jvmargs="$fb_jvmargs \
|
|
-Xdock:name=FindBugs -Xdock:icon=${findbugs_home}/lib/buggy.icns \
|
|
-Dapple.laf.useScreenMenuBar=true"
|
|
fi
|
|
|
|
fb_javacmd=${fb_javacmd:-"java"}
|
|
fb_maxheap=${fb_maxheap:-"-Xmx768m"}
|
|
fb_appjar=${fb_appjar:-"$findbugs_home/lib/findbugs.jar"}
|
|
set -f
|
|
#echo command: \
|
|
exec "$fb_javacmd" \
|
|
-classpath "$fb_appjar$fb_pathsep$CLASSPATH" \
|
|
-Dfindbugs.home="$findbugs_home"\
|
|
$fb_maxheap $fb_jvmargs $fb_mainclass ${@:+"$@"} $fb_appargs
|
|
|
|
# vim:ts=3
|