Extract build file creation on auto config error into a helper method
PiperOrigin-RevId: 607702663
Change-Id: I2b6991adcc0b67e27341729f0b37b5678cb19331
diff --git a/toolchains/local_java_repository.bzl b/toolchains/local_java_repository.bzl
index 0a68f19..3f28baa 100644
--- a/toolchains/local_java_repository.bzl
+++ b/toolchains/local_java_repository.bzl
@@ -191,19 +191,13 @@
if not java_bin.exists:
# Java binary does not exist
- message = ("Cannot find Java binary {java_binary} in {java_home}; either correct your JAVA_HOME, " +
- "PATH or specify Java from remote repository (e.g. " +
- "--java_runtime_version=remotejdk_11)")
- repository_ctx.file(
- "BUILD.bazel",
- _AUTO_CONFIG_ERROR_BUILD_TPL.format(
- local_jdk = local_java_runtime_name,
- message = repr(message.format(
- java_binary = _with_os_extension(repository_ctx, "bin/java"),
- java_home = java_home,
- )),
- ),
- False,
+ _create_auto_config_error_build_file(
+ repository_ctx,
+ local_java_runtime_name = local_java_runtime_name,
+ java_home = java_home,
+ message = "Cannot find Java binary {java_binary} in {java_home}; " +
+ "either correct your JAVA_HOME, PATH or specify Java from " +
+ "remote repository (e.g. --java_runtime_version=remotejdk_11)",
)
return
@@ -211,17 +205,12 @@
version = repository_ctx.attr.version if repository_ctx.attr.version != "" else _detect_java_version(repository_ctx, java_bin)
if version == None:
# Java version could not be detected
- message = "Cannot detect Java version of {java_binary} in {java_home}; make sure it points to a valid Java executable"
- repository_ctx.file(
- "BUILD.bazel",
- _AUTO_CONFIG_ERROR_BUILD_TPL.format(
- local_jdk = local_java_runtime_name,
- message = repr(message.format(
- java_binary = _with_os_extension(repository_ctx, "bin/java"),
- java_home = java_home,
- )),
- ),
- False,
+ _create_auto_config_error_build_file(
+ repository_ctx,
+ local_java_runtime_name = local_java_runtime_name,
+ java_home = java_home,
+ message = "Cannot detect Java version of {java_binary} in {java_home}; " +
+ "make sure it points to a valid Java executable",
)
return
@@ -285,6 +274,19 @@
)
'''
+def _create_auto_config_error_build_file(repository_ctx, *, local_java_runtime_name, java_home, message):
+ repository_ctx.file(
+ "BUILD.bazel",
+ _AUTO_CONFIG_ERROR_BUILD_TPL.format(
+ local_jdk = local_java_runtime_name,
+ message = repr(message.format(
+ java_binary = _with_os_extension(repository_ctx, "bin/java"),
+ java_home = java_home,
+ )),
+ ),
+ False,
+ )
+
_local_java_repository_rule = repository_rule(
implementation = _local_java_repository_impl,
local = True,