From 9515d34aee18619474863fc7a06a6f4b8f868a2d Mon Sep 17 00:00:00 2001
From: Yuanchao Sun <yuanchao.sun@gmail.com>
Date: Thu, 7 Nov 2019 18:48:30 +0800
Subject: [PATCH] Also replace paths in [build-dependencies] (#4039)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Also replace paths in [build-dependencies]

* Update scripts/node-template-release/src/main.rs

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>

* Slightly reduce memory usage

* Update scripts/node-template-release/src/main.rs

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
---
 .../scripts/node-template-release/src/main.rs | 56 ++++++++++---------
 1 file changed, 29 insertions(+), 27 deletions(-)

diff --git a/substrate/scripts/node-template-release/src/main.rs b/substrate/scripts/node-template-release/src/main.rs
index e1db5af6497..7fde9c86847 100644
--- a/substrate/scripts/node-template-release/src/main.rs
+++ b/substrate/scripts/node-template-release/src/main.rs
@@ -88,33 +88,35 @@ fn replace_path_dependencies_with_git(cargo_toml_path: &Path, commit_id: &str, c
 	// remove `Cargo.toml`
 	cargo_toml_path.pop();
 
-	let mut dependencies: toml::value::Table = match cargo_toml
-		.remove("dependencies")
-		.and_then(|v| v.try_into().ok()) {
-		Some(deps) => deps,
-		None => return,
-	};
-
-	let deps_rewritten = dependencies
-		.iter()
-		.filter_map(|(k, v)| v.clone().try_into::<toml::value::Table>().ok().map(move |v| (k, v)))
-		.filter(|t| t.1.contains_key("path"))
-		.filter(|t| {
-			// if the path does not exists, we need to add this as git dependency
-			t.1.get("path").unwrap().as_str().map(|path| !cargo_toml_path.join(path).exists()).unwrap_or(false)
-		})
-		.map(|(k, mut v)| {
-			// remove `path` and add `git` and `rev`
-			v.remove("path");
-			v.insert("git".into(), SUBSTRATE_GIT_URL.into());
-			v.insert("rev".into(), commit_id.into());
-
-			(k.clone(), v.into())
-		}).collect::<HashMap<_, _>>();
-
-	dependencies.extend(deps_rewritten.into_iter());
-
-	cargo_toml.insert("dependencies".into(), dependencies.into());
+	for table in &["dependencies", "build-dependencies"] {
+		let mut dependencies: toml::value::Table = match cargo_toml
+			.remove(table)
+			.and_then(|v| v.try_into().ok()) {
+			Some(deps) => deps,
+			None => continue,
+		};
+
+		let deps_rewritten = dependencies
+			.iter()
+			.filter_map(|(k, v)| v.clone().try_into::<toml::value::Table>().ok().map(move |v| (k, v)))
+			.filter(|t| t.1.contains_key("path"))
+			.filter(|t| {
+				// if the path does not exists, we need to add this as git dependency
+				t.1.get("path").unwrap().as_str().map(|path| !cargo_toml_path.join(path).exists()).unwrap_or(false)
+			})
+			.map(|(k, mut v)| {
+				// remove `path` and add `git` and `rev`
+				v.remove("path");
+				v.insert("git".into(), SUBSTRATE_GIT_URL.into());
+				v.insert("rev".into(), commit_id.into());
+
+				(k.clone(), v.into())
+			}).collect::<HashMap<_, _>>();
+
+		dependencies.extend(deps_rewritten.into_iter());
+
+		cargo_toml.insert(table.into(), dependencies.into());
+	}
 }
 
 /// Update the top level (workspace) `Cargo.toml` file.
-- 
GitLab