@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 |