rustPlatform.importCargoLock: handle workspace Cargo.toml false positives

Since we grep for 'workspace', it's possible the script ends up running
on a Cargo.toml that has the word 'workspace' in a comment, but does not
actually use workspaces
This commit is contained in:
D Anzorge 2023-03-22 16:11:36 +01:00 committed by zowoq
parent 6085b3b7f7
commit c86b1a0bca

View File

@ -63,8 +63,16 @@ def replace_dependencies(
def main() -> None:
top_cargo_toml = load_file(sys.argv[2])
if "workspace" not in top_cargo_toml:
# If top_cargo_toml is not a workspace manifest, then this script was probably
# ran on something that does not actually use workspace dependencies
print(f"{sys.argv[2]} is not a workspace manifest, doing nothing.")
return
crate_manifest = load_file(sys.argv[1])
workspace_manifest = load_file(sys.argv[2])["workspace"]
workspace_manifest = top_cargo_toml["workspace"]
if "workspace" in crate_manifest:
return