From 645d471e2a7c78d9cb5c22b6de4558966f8bae6a Mon Sep 17 00:00:00 2001 From: salma-samy Date: Fri, 16 Feb 2024 02:25:54 -0800 Subject: [PATCH] Mod command fails if bzlmod is disabled (fixes: #21303) PiperOrigin-RevId: 607621058 Change-Id: Id58e92d4f80e408e5bf4deabe08e8a864940de63 --- .../build/lib/bazel/commands/ModCommand.java | 21 +++++++------------ .../devtools/build/lib/bazel/commands/mod.txt | 1 + src/test/py/bazel/bzlmod/mod_command_test.py | 10 +++++++++ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/ModCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/ModCommand.java index 611764b553e274..ec08bfafd50d55 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/commands/ModCommand.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/ModCommand.java @@ -56,6 +56,7 @@ import com.google.devtools.build.lib.cmdline.RepositoryMapping; import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.events.Event; +import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions; import com.google.devtools.build.lib.pkgcache.PackageOptions; import com.google.devtools.build.lib.runtime.BlazeCommand; import com.google.devtools.build.lib.runtime.BlazeCommandResult; @@ -82,8 +83,6 @@ import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import com.google.devtools.common.options.OptionPriority.PriorityCategory; -import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; import com.google.devtools.common.options.OptionsParsingResult; import com.google.gson.Gson; @@ -120,20 +119,14 @@ public final class ModCommand implements BlazeCommand { public static final String NAME = "mod"; @Override - public void editOptions(OptionsParser optionsParser) { - try { - optionsParser.parse( - PriorityCategory.SOFTWARE_REQUIREMENT, - "Option required by the mod command", - ImmutableList.of("--enable_bzlmod")); - } catch (OptionsParsingException e) { - // Should never happen. - throw new IllegalStateException("Unexpected exception", e); + public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult options) { + if (!options.getOptions(BuildLanguageOptions.class).enableBzlmod) { + return reportAndCreateFailureResult( + env, + "Bzlmod has to be enabled for mod command to work, run with --enable_bzlmod", + Code.MISSING_ARGUMENTS); } - } - @Override - public BlazeCommandResult exec(CommandEnvironment env, OptionsParsingResult options) { env.getEventBus() .post( new NoBuildEvent( diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/mod.txt b/src/main/java/com/google/devtools/build/lib/bazel/commands/mod.txt index efd63df44df19b..f81995a286db83 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/commands/mod.txt +++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/mod.txt @@ -2,6 +2,7 @@ Usage: %{product} %{command} [