diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-04-20 07:26:52 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-20 07:28:11 -0700 |
commit | 97132c0925031e1b1fb8e9e5dde2233daef9d97b (patch) | |
tree | dfc8b322328f0fd338cb6aac6701d05fa3f65d36 /src | |
parent | ecd1408cf7c5b7a9827d273aad609341bb1ec522 (diff) |
Allow repository rules to return a value
...in preparation of the change towards resolved workspaces,
where a source-like rule is supposed to return the information
needed to make it reproducible. At the moment, the value is
ignored (it is just printed back to the user), but it allows
rule authors to prepare for the upcoming change.
RELNOTES: repository rules are no longer restricted to return None.
Change-Id: I1b3bdc7b02a957f00c9846bcb0ee6b7e09343d72
PiperOrigin-RevId: 193664946
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java index 112cc8fb4b..685a651fdf 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryFunction.java @@ -20,6 +20,7 @@ import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.bazel.repository.downloader.HttpDownloader; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue; import com.google.devtools.build.lib.rules.repository.RepositoryFunction; @@ -97,13 +98,8 @@ public class SkylarkRepositoryFunction extends RepositoryFunction { null, buildEnv); if (retValue != Runtime.NONE) { - throw new RepositoryFunctionException( - new EvalException( - rule.getLocation(), - "Call to repository rule " - + rule.getName() - + " returned a non-None value, None expected."), - Transience.PERSISTENT); + env.getListener() + .handle(Event.info("Repository rule '" + rule.getName() + "' returned: " + retValue)); } } catch (EvalException e) { if (e.getCause() instanceof RepositoryMissingDependencyException) { |