blob: 4efd6097ac107ab59d9a6b5a1c3fa8e2ff320156 [file] [log] [blame]
diff --git a/impl/src/rendering/templates/remote_crates.bzl.template b/impl/src/rendering/templates/remote_crates.bzl.template
index f30a6b8b..c0bb4cd8 100644
--- a/impl/src/rendering/templates/remote_crates.bzl.template
+++ b/impl/src/rendering/templates/remote_crates.bzl.template
@@ -6,39 +6,55 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") # buildifier: di
{% if experimental_api %}
{% include "templates/partials/crates_macro.template" %}
{% endif %}
-def {{workspace.gen_workspace_prefix}}_fetch_remote_crates():
{%- if crates %}
+def {{workspace.gen_workspace_prefix}}_fetch_remote_crates(
+ # Each of these may be used to temporarily override the location of
+ # the crate to a path on your local filesystem for local development
+ # of crates you may be using in your project.
+{%- for crate in crates %}
+ {{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}=None,
+{% endfor %}
+ ):
"""This function defines a collection of repos and should be called in a WORKSPACE file"""
{%- for crate in crates %}
+ if {{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}:
+ maybe(
+ native.new_local_repository,
+ name = "{{workspace.gen_workspace_prefix}}__{{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}",
+ path = {{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}},
+ build_file = "{{workspace.workspace_path}}/remote:BUILD.{{crate.pkg_name}}-{{crate.pkg_version}}.bazel",
+ )
+ else:
{%- if crate.source_details.git_data %}
- maybe(
- new_git_repository,
- name = "{{workspace.gen_workspace_prefix}}__{{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}",
- remote = "{{crate.source_details.git_data.remote}}",
- commit = "{{crate.source_details.git_data.commit}}",
- build_file = Label("{{workspace.workspace_path}}/remote:BUILD.{{crate.pkg_name}}-{{crate.pkg_version}}.bazel"),
- init_submodules = True,
- {%- include "templates/partials/remote_crates_patch.template" %}
- )
+ maybe(
+ new_git_repository,
+ name = "{{workspace.gen_workspace_prefix}}__{{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}",
+ remote = "{{crate.source_details.git_data.remote}}",
+ commit = "{{crate.source_details.git_data.commit}}",
+ build_file = Label("{{workspace.workspace_path}}/remote:BUILD.{{crate.pkg_name}}-{{crate.pkg_version}}.bazel"),
+ init_submodules = True,
+ {%- include "templates/partials/remote_crates_patch.template" %}
+ )
{%- else %}
- maybe(
- http_archive,
- name = "{{workspace.gen_workspace_prefix}}__{{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}",
- url = "{{ crate.source_details.download_url }}",
- type = "tar.gz",
-{%- if crate.sha256 %}
- sha256 = "{{crate.sha256}}",
-{%- endif %}
- strip_prefix = "{{crate.pkg_name}}-{{crate.pkg_version}}",
- {%- include "templates/partials/remote_crates_patch.template" %}
- build_file = Label("{{workspace.workspace_path}}/remote:BUILD.{{crate.pkg_name}}-{{crate.pkg_version}}.bazel"),
- )
+ maybe(
+ http_archive,
+ name = "{{workspace.gen_workspace_prefix}}__{{crate.pkg_name | replace(from="-", to="_")}}__{{crate.pkg_version | slugify | replace(from="-", to="_")}}",
+ url = "{{ crate.source_details.download_url }}",
+ type = "tar.gz",
+ {%- if crate.sha256 %}
+ sha256 = "{{crate.sha256}}",
+ {%- endif %}
+ strip_prefix = "{{crate.pkg_name}}-{{crate.pkg_version}}",
+ {%- include "templates/partials/remote_crates_patch.template" %}
+ build_file = Label("{{workspace.workspace_path}}/remote:BUILD.{{crate.pkg_name}}-{{crate.pkg_version}}.bazel"),
+ )
{%- endif %}
{% endfor %}
{%- else %}
+def {{workspace.gen_workspace_prefix}}_fetch_remote_crates():
"""No crates were detected in the source Cargo.toml. This is a no-op"""
pass
{% endif %}
{%- else %}
{% include "templates/partials/crates_macro.template" %}
-{% endif %}
+{% endif %}