aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-11-15 09:26:31 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-11-15 15:59:15 +0000
commit18f7ace22493f7190d6b425b74b3690ec9485a30 (patch)
treed6ab1fd6938398e09887f4f9c5784e6b7b0781bc /src/main/java/com/google/devtools
parent06ded1e91c1a3754e21d2782e8bfd1c5cd4f5929 (diff)
Minor refactoring.
-- MOS_MIGRATED_REVID=139173954
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ProjectFile.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java2
5 files changed, 16 insertions, 28 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
index 1ba369d0d1..6a105139fe 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer;
+import com.google.devtools.build.lib.runtime.commands.ProjectFileSupport;
import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.AnsiStrippingOutputStream;
import com.google.devtools.build.lib.util.BlazeClock;
@@ -217,9 +218,9 @@ public class BlazeCommandDispatcher {
return ExitCode.SUCCESS;
}
- private void parseArgsAndConfigs(OptionsParser optionsParser, Command commandAnnotation,
- List<String> args, List<String> rcfileNotes, OutErr outErr)
- throws OptionsParsingException {
+ private void parseArgsAndConfigs(CommandEnvironment env, OptionsParser optionsParser,
+ Command commandAnnotation, List<String> args, List<String> rcfileNotes, OutErr outErr)
+ throws OptionsParsingException {
Function<String, String> commandOptionSourceFunction = new Function<String, String>() {
@Override
@@ -245,6 +246,9 @@ public class BlazeCommandDispatcher {
runtime.getCommandMap().keySet());
parseOptionsForCommand(rcfileNotes, commandAnnotation, optionsParser, optionsMap, null, null);
+ if (commandAnnotation.builds()) {
+ ProjectFileSupport.handleProjectFiles(env, optionsParser, commandAnnotation.name());
+ }
// Fix-point iteration until all configs are loaded.
List<String> configsLoaded = ImmutableList.of();
@@ -397,7 +401,7 @@ public class BlazeCommandDispatcher {
List<String> rcfileNotes = new ArrayList<>();
try {
optionsParser = createOptionsParser(command);
- parseArgsAndConfigs(optionsParser, commandAnnotation, args, rcfileNotes, outErr);
+ parseArgsAndConfigs(env, optionsParser, commandAnnotation, args, rcfileNotes, outErr);
InvocationPolicyEnforcer optionsPolicyEnforcer =
new InvocationPolicyEnforcer(runtime.getInvocationPolicy());
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ProjectFile.java b/src/main/java/com/google/devtools/build/lib/runtime/ProjectFile.java
index 63505e90e7..59c0a23294 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ProjectFile.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ProjectFile.java
@@ -14,10 +14,9 @@
package com.google.devtools.build.lib.runtime;
-import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
-
+import com.google.devtools.common.options.OptionsParsingException;
import java.util.List;
/**
@@ -40,7 +39,7 @@ public interface ProjectFile {
* file cannot be parsed, then it throws an exception.
*/
ProjectFile getProjectFile(Path workingDirectory, List<Path> packagePath, PathFragment path)
- throws AbruptExitException;
+ throws OptionsParsingException;
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java
index 7a647cb4f2..9aed4a79c8 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/BuildCommand.java
@@ -24,11 +24,9 @@ import com.google.devtools.build.lib.runtime.BlazeCommand;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.Command;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
-import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.ExitCode;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsProvider;
-
import java.util.List;
/**
@@ -51,9 +49,7 @@ import java.util.List;
public final class BuildCommand implements BlazeCommand {
@Override
- public void editOptions(CommandEnvironment env, OptionsParser optionsParser)
- throws AbruptExitException {
- ProjectFileSupport.handleProjectFiles(env, optionsParser, "build");
+ public void editOptions(CommandEnvironment env, OptionsParser optionsParser) {
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
index cfdabe690e..3d3a9b0066 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/ProjectFileSupport.java
@@ -21,15 +21,12 @@ import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.CommonCommandOptions;
import com.google.devtools.build.lib.runtime.ProjectFile;
-import com.google.devtools.build.lib.util.AbruptExitException;
-import com.google.devtools.build.lib.util.ExitCode;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.common.options.OptionPriority;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingException;
import com.google.devtools.common.options.OptionsProvider;
-
import java.util.List;
/**
@@ -46,19 +43,17 @@ public final class ProjectFileSupport {
* are not enabled, then it throws an exception instead.
*/
public static void handleProjectFiles(CommandEnvironment env, OptionsParser optionsParser,
- String command) throws AbruptExitException {
+ String command) throws OptionsParsingException {
BlazeRuntime runtime = env.getRuntime();
List<String> targets = optionsParser.getResidue();
ProjectFile.Provider projectFileProvider = runtime.getProjectFileProvider();
if (projectFileProvider != null && !targets.isEmpty()
&& targets.get(0).startsWith(PROJECT_FILE_PREFIX)) {
if (targets.size() > 1) {
- throw new AbruptExitException("Cannot handle more than one +<file> argument yet",
- ExitCode.COMMAND_LINE_ERROR);
+ throw new OptionsParsingException("Cannot handle more than one +<file> argument yet");
}
if (!optionsParser.getOptions(CommonCommandOptions.class).allowProjectFiles) {
- throw new AbruptExitException("project file support is not enabled",
- ExitCode.COMMAND_LINE_ERROR);
+ throw new OptionsParsingException("project file support is not enabled");
}
// TODO(bazel-team): This is currently treated as a path relative to the workspace - if the
// cwd is a subdirectory of the workspace, that will be surprising, and we should interpret it
@@ -74,12 +69,8 @@ public final class ProjectFileSupport {
env.getWorkingDirectory(), packagePath, projectFilePath);
env.getReporter().handle(Event.info("Using " + projectFile.getName()));
- try {
- optionsParser.parse(
- OptionPriority.RC_FILE, projectFile.getName(), projectFile.getCommandLineFor(command));
- } catch (OptionsParsingException e) {
- throw new AbruptExitException(e.getMessage(), ExitCode.COMMAND_LINE_ERROR);
- }
+ optionsParser.parse(
+ OptionPriority.RC_FILE, projectFile.getName(), projectFile.getCommandLineFor(command));
env.getEventBus().post(new GotProjectFileEvent(projectFile.getName()));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
index 7a802d18ba..7dfd14480c 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
@@ -67,8 +67,6 @@ public class TestCommand implements BlazeCommand {
@Override
public void editOptions(CommandEnvironment env, OptionsParser optionsParser)
throws AbruptExitException {
- ProjectFileSupport.handleProjectFiles(env, optionsParser, commandName());
-
TestOutputFormat testOutput = optionsParser.getOptions(ExecutionOptions.class).testOutput;
try {