240 lines
6.7 KiB
Batchfile
240 lines
6.7 KiB
Batchfile
@echo off
|
|
:: Launch FindBugs on a Windows system.
|
|
:: Adapted from scripts found at http://www.ericphelps.com/batch/
|
|
:: This will only work on Windows NT or later!
|
|
|
|
:: Don't affect environment outside of this invocation
|
|
setlocal
|
|
|
|
:: ----------------------------------------------------------------------
|
|
:: Set up default values
|
|
:: ----------------------------------------------------------------------
|
|
set appjar=findbugs.jar
|
|
set javahome=
|
|
set launcher=java.exe
|
|
set start=start "FindBugs"
|
|
set jvmargs=
|
|
set debugArg=
|
|
set conserveSpaceArg=
|
|
set workHardArg=
|
|
set args=
|
|
set javaProps=
|
|
set maxheap=768
|
|
|
|
REM default UI is gui2
|
|
set launchUI=2
|
|
|
|
:: Try finding the default FINDBUGS_HOME directory
|
|
:: from the directory path of this script
|
|
set default_findbugs_home=%~dp0..
|
|
|
|
:: Honor JAVA_HOME environment variable if it is set
|
|
if "%JAVA_HOME%"=="" goto nojavahome
|
|
if not exist "%JAVA_HOME%\bin\javaw.exe" goto nojavahome
|
|
set javahome=%JAVA_HOME%\bin\
|
|
:nojavahome
|
|
|
|
goto loop
|
|
|
|
:: ----------------------------------------------------------------------
|
|
:: Process command-line arguments
|
|
:: ----------------------------------------------------------------------
|
|
|
|
:shift2
|
|
shift
|
|
:shift1
|
|
shift
|
|
|
|
:loop
|
|
|
|
:: Remove surrounding quotes from %1 and %2
|
|
set firstArg=%~1
|
|
set secondArg=%~2
|
|
|
|
if "%firstArg%"=="" goto launch
|
|
|
|
:: AddMessages
|
|
if not "%firstArg%"=="-addMessages" goto notAddMessages
|
|
set fb_mainclass=edu.umd.cs.findbugs.AddMessages
|
|
goto shift1
|
|
:notAddMessages
|
|
|
|
:: computeBugHistory
|
|
if not "%firstArg%"=="-computeBugHistory" goto notUpdate
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.Update
|
|
goto shift1
|
|
:notUpdate
|
|
|
|
:: convertXmlToText
|
|
if not "%firstArg%"=="-xmltotext" goto notXmlToText
|
|
set fb_mainclass=edu.umd.cs.findbugs.PrintingBugReporter
|
|
goto shift1
|
|
:notXmlToText
|
|
|
|
:: copyBuggySource
|
|
if not "%firstArg%"=="-copyBS" goto notCopyBS
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.CopyBuggySource
|
|
goto shift1
|
|
:notCopyBS
|
|
|
|
:: defectDensity
|
|
if not "%firstArg%"=="-defectDensity" goto notDefectDensity
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.DefectDensity
|
|
goto shift1
|
|
:notDefectDensity
|
|
|
|
:: filterBugs
|
|
if not "%firstArg%"=="-filterBugs" goto notFilterBugs
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.Filter
|
|
goto shift1
|
|
:notFilterBugs
|
|
|
|
:: listBugDatabaseInfo
|
|
if not "%firstArg%"=="-listBugDatabaseInfo" goto notListBugDatabaseInfo
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.ListBugDatabaseInfo
|
|
goto shift1
|
|
:notListBugDatabaseInfo
|
|
|
|
:: mineBugHistory
|
|
if not "%firstArg%"=="-mineBugHistory" goto notMineBugHistory
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.MineBugHistory
|
|
goto shift1
|
|
:notMineBugHistory
|
|
|
|
:: printAppVersion
|
|
if not "%firstArg%"=="-printAppVersion" goto notPrintAppVersion
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintAppVersion
|
|
goto shift1
|
|
:notPrintAppVersion
|
|
|
|
:: printClass
|
|
if not "%firstArg%"=="-printClass" goto notPrintClass
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.PrintClass
|
|
goto shift1
|
|
:notPrintClass
|
|
|
|
:: rejarForAnalysis
|
|
if not "%firstArg%"=="-rejar" goto notRejar
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.RejarClassesForAnalysis
|
|
goto shift1
|
|
:notRejar
|
|
|
|
:: setBugDatabaseInfo
|
|
if not "%firstArg%"=="-setInfo" goto notSetBugDatabaseInfo
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.SetBugDatabaseInfo
|
|
goto shift1
|
|
:notSetBugDatabaseInfo
|
|
|
|
:: unionBugs
|
|
if not "%firstArg%"=="-unionBugs" goto notUnionBugs
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.UnionResults
|
|
goto shift1
|
|
:notUnionBugs
|
|
|
|
:: xpathFind
|
|
if not "%firstArg%"=="-xpathFind" goto notXPathFind
|
|
set fb_mainclass=edu.umd.cs.findbugs.workflow.XPathFind
|
|
goto shift1
|
|
:notXPathFind
|
|
|
|
if not "%firstArg%"=="-gui" goto notGui
|
|
set launchUI=2
|
|
set launcher=javaw.exe
|
|
goto shift1
|
|
:notGui
|
|
|
|
if not "%firstArg%"=="-gui1" goto notGui1
|
|
set launchUI=1
|
|
set javaProps=-Dfindbugs.launchUI=1 %javaProps%
|
|
set launcher=javaw.exe
|
|
goto shift1
|
|
:notGui1
|
|
|
|
if not "%firstArg%"=="-textui" goto notTextui
|
|
set launchUI=0
|
|
set launcher=java.exe
|
|
set start=
|
|
goto shift1
|
|
:notTextui
|
|
|
|
if not "%firstArg%"=="-debug" goto notDebug
|
|
set launcher=java.exe
|
|
set start=
|
|
set debugArg=-Dfindbugs.debug=true
|
|
goto shift1
|
|
:notDebug
|
|
|
|
if not "%firstArg%"=="-help" goto notHelp
|
|
set launchUI=help
|
|
set launcher=java.exe
|
|
set start=
|
|
goto shift1
|
|
:notHelp
|
|
|
|
if not "%firstArg%"=="-version" goto notVersion
|
|
set launchUI=version
|
|
set launcher=java.exe
|
|
set start=
|
|
goto shift1
|
|
:notVersion
|
|
|
|
if "%firstArg%"=="-home" set FINDBUGS_HOME=%secondArg%
|
|
if "%firstArg%"=="-home" goto shift2
|
|
|
|
if "%firstArg%"=="-jvmArgs" set jvmargs=%secondArg%
|
|
if "%firstArg%"=="-jvmArgs" goto shift2
|
|
|
|
if "%firstArg%"=="-maxHeap" set maxheap=%secondArg%
|
|
if "%firstArg%"=="-maxHeap" goto shift2
|
|
|
|
if "%firstArg%"=="-conserveSpace" set conserveSpaceArg=-Dfindbugs.conserveSpace=true
|
|
if "%firstArg%"=="-conserveSpace" goto shift1
|
|
|
|
if "%firstArg%"=="-workHard" set workHardArg=-Dfindbugs.workHard=true
|
|
if "%firstArg%"=="-workHard" goto shift1
|
|
|
|
if "%firstArg%"=="-javahome" set javahome=%secondArg%\bin\
|
|
if "%firstArg%"=="-javahome" goto shift2
|
|
|
|
if "%firstArg%"=="-property" set javaProps=-D%secondArg% %javaProps%
|
|
if "%firstArg%"=="-property" goto shift2
|
|
|
|
if "%firstArg%"=="" goto launch
|
|
|
|
set args=%args% "%firstArg%"
|
|
goto shift1
|
|
|
|
:: ----------------------------------------------------------------------
|
|
:: Launch FindBugs
|
|
:: ----------------------------------------------------------------------
|
|
:launch
|
|
:: Make sure FINDBUGS_HOME is set.
|
|
:: If it isn't, try using the default value based on the
|
|
:: directory path of the invoked script.
|
|
:: Note that this will fail miserably if the value of FINDBUGS_HOME
|
|
:: has quote characters in it.
|
|
if not "%FINDBUGS_HOME%"=="" goto checkHomeValid
|
|
set FINDBUGS_HOME=%default_findbugs_home%
|
|
|
|
:checkHomeValid
|
|
if not exist "%FINDBUGS_HOME%\lib\%appjar%" goto homeNotSet
|
|
|
|
:found_home
|
|
:: Launch FindBugs!
|
|
if "%fb_mainclass%"=="" goto runJar
|
|
"%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -cp "%FINDBUGS_HOME%\lib\%appjar%" %fb_mainclass% %args%
|
|
goto end
|
|
:runjar
|
|
%start% "%javahome%%launcher%" %debugArg% %conserveSpaceArg% %workHardArg% %javaProps% "-Dfindbugs.home=%FINDBUGS_HOME%" -Xmx%maxheap%m %jvmargs% "-Dfindbugs.launchUI=%launchUI%" -jar "%FINDBUGS_HOME%\lib\%appjar%" %args%
|
|
goto end
|
|
|
|
:: ----------------------------------------------------------------------
|
|
:: Report that FINDBUGS_HOME is not set (and was not specified)
|
|
:: ----------------------------------------------------------------------
|
|
:homeNotSet
|
|
echo Could not find FindBugs home directory. There may be a problem
|
|
echo with the FindBugs installation. Try setting FINDBUGS_HOME, or
|
|
echo re-installing.
|
|
goto end
|
|
|
|
:end
|