diff options
author | 2016-11-15 09:26:31 +0000 | |
---|---|---|
committer | 2016-11-15 15:59:15 +0000 | |
commit | 18f7ace22493f7190d6b425b74b3690ec9485a30 (patch) | |
tree | d6ab1fd6938398e09887f4f9c5784e6b7b0781bc /src/main/java/com/google/devtools | |
parent | 06ded1e91c1a3754e21d2782e8bfd1c5cd4f5929 (diff) |
Minor refactoring.
--
MOS_MIGRATED_REVID=139173954
Diffstat (limited to 'src/main/java/com/google/devtools')
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 { |