diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java | 25 | ||||
-rwxr-xr-x | src/test/shell/integration/client_test.sh | 9 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java index 07fdfe37a8..fa0d66ee5f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelStartupOptionsModule.java @@ -13,8 +13,13 @@ // limitations under the License. package com.google.devtools.build.lib.bazel; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.runtime.BlazeModule; +import com.google.devtools.build.lib.runtime.BlazeServerStartupOptions; +import com.google.devtools.build.lib.runtime.CommandEnvironment; +import com.google.devtools.build.lib.util.AbruptExitException; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; @@ -55,4 +60,24 @@ public class BazelStartupOptionsModule extends BlazeModule { public Iterable<Class<? extends OptionsBase>> getStartupOptions() { return ImmutableList.of(Options.class); } + + /** + * Post a deprecation warning about batch mode. This is in beforeCommand, and not earlier, so that + * we can post the warning event to the correctly set up channels. + */ + @Override + public void beforeCommand(CommandEnvironment env) throws AbruptExitException { + BlazeServerStartupOptions startupOptions = + Preconditions.checkNotNull( + env.getRuntime() + .getStartupOptionsProvider() + .getOptions(BlazeServerStartupOptions.class)); + if (startupOptions.batch) { + env.getReporter() + .handle( + Event.warn( + "--batch mode is deprecated. Please instead explicitly shut down your Bazel " + + "server using the command \"bazel shutdown\".")); + } + } } diff --git a/src/test/shell/integration/client_test.sh b/src/test/shell/integration/client_test.sh index da0708e86d..1a9bb7af91 100755 --- a/src/test/shell/integration/client_test.sh +++ b/src/test/shell/integration/client_test.sh @@ -136,6 +136,7 @@ function test_nobatch() { local pid2=$(bazel --batch --nobatch info server_pid 2> $TEST_log) assert_equals "$pid1" "$pid2" expect_not_log "WARNING: Running B\\(azel\\|laze\\) server needs to be killed" + expect_not_log "WARNING: --batch mode is deprecated." } # Regression test for #1875189, "bazel client should pass through '--help' like @@ -161,6 +162,14 @@ function test_bazel_dash_s_is_not_parsed() { expect_log "Unknown startup option: '-s'." } +function test_batch() { + local pid1=$(bazel info server_pid 2> $TEST_log) + local pid2=$(bazel --batch info server_pid 2> $TEST_log) + assert_not_equals "$pid1" "$pid2" + expect_log "WARNING: Running B\\(azel\\|laze\\) server needs to be killed" + expect_log "WARNING: --batch mode is deprecated." +} + function test_cmdline_not_written_in_batch_mode() { OUTPUT_BASE=$(bazel --batch info output_base 2> $TEST_log) rm -f $OUTPUT_BASE/server/cmdline |