blob: f02d74ce4120b46af1d73ecc0dd7a40465bb63fd [file] [log] [blame]
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* Created by IntelliJ IDEA.
* User: max
* Date: May 23, 2002
* Time: 5:20:01 PM
* To change template for new class use
* Code Style | Class Templates options (Tools | IDE Options).
*/
package com.intellij.codeInspection;
import com.intellij.openapi.application.ApplicationStarter;
import java.util.Arrays;
public class InspectionMain implements ApplicationStarter {
private InspectionApplication myApplication;
@Override
public String getCommandName() {
return "inspect";
}
@Override
@SuppressWarnings({"HardCodedStringLiteral"})
public void premain(String[] args) {
if (args.length < 4) {
System.err.println("invalid args:" + Arrays.toString(args));
printHelp();
}
//System.setProperty("idea.load.plugins.category", "inspection");
myApplication = new InspectionApplication();
myApplication.myHelpProvider = new InspectionToolCmdlineOptionHelpProvider() {
@Override
public void printHelpAndExit() {
printHelp();
}
};
myApplication.myProjectPath = args[1];
myApplication.myStubProfile = args[2];
myApplication.myOutPath = args[3];
if (myApplication.myProjectPath == null
|| myApplication.myOutPath == null
|| myApplication.myStubProfile == null) {
System.err.println(myApplication.myProjectPath + myApplication.myOutPath + myApplication.myStubProfile);
printHelp();
}
try {
for (int i = 4; i < args.length; i++) {
String arg = args[i];
if ("-profileName".equals(arg)) {
myApplication.myProfileName = args[++i];
} else if ("-profilePath".equals(arg)) {
myApplication.myProfilePath = args[++i];
} else if ("-d".equals(arg)) {
myApplication.mySourceDirectory = args[++i];
}
else if ("-v0".equals(arg)) {
myApplication.setVerboseLevel(0);
}
else if ("-v1".equals(arg)) {
myApplication.setVerboseLevel(1);
}
else if ("-v2".equals(arg)) {
myApplication.setVerboseLevel(2);
}
else if ("-v3".equals(arg)) {
myApplication.setVerboseLevel(3);
}
else if ("-e".equals(arg)){
myApplication.myRunWithEditorSettings = true;
}
else if ("-t".equals(arg)) {
myApplication.myErrorCodeRequired = false;
}
else {
System.err.println("unexpected argument: " + arg);
printHelp();
}
}
}
catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
printHelp();
}
myApplication.myRunGlobalToolsOnly = System.getProperty("idea.no.local.inspections") != null;
}
@Override
public void main(String[] args) {
myApplication.startup();
}
public static void printHelp() {
System.out.println(InspectionsBundle.message("inspection.command.line.explanation"));
System.exit(1);
}
}