diff --git a/src/cli/commands/publish.rs b/src/cli/commands/publish.rs index e9fb471..3c4a314 100644 --- a/src/cli/commands/publish.rs +++ b/src/cli/commands/publish.rs @@ -125,13 +125,11 @@ impl PublishCommand { .target .kind() .packages_folder(id.version_id().target()); - let container_folder = node.container_folder( - &project - .package_dir() - .join(base_folder) - .join(PACKAGES_CONTAINER_NAME), - id, - ); + let container_folder = project + .package_dir() + .join(base_folder) + .join(PACKAGES_CONTAINER_NAME) + .join(node.container_folder(id)); let node = node.clone(); let refreshed_sources = refreshed_sources.clone(); diff --git a/src/cli/commands/run.rs b/src/cli/commands/run.rs index fa7160f..23566ff 100644 --- a/src/cli/commands/run.rs +++ b/src/cli/commands/run.rs @@ -92,13 +92,11 @@ impl RunCommand { .target .kind() .packages_folder(id.version_id().target()); - let container_folder = node.container_folder( - &project - .package_dir() - .join(base_folder) - .join(PACKAGES_CONTAINER_NAME), - &id, - ); + let container_folder = project + .package_dir() + .join(base_folder) + .join(PACKAGES_CONTAINER_NAME) + .join(node.container_folder(&id)); let source = node.pkg_ref.source(); source diff --git a/src/download.rs b/src/download.rs index 7216cab..1186307 100644 --- a/src/download.rs +++ b/src/download.rs @@ -170,15 +170,12 @@ impl Project { ) .await?; - let container_folder = node.container_folder( - &package_dir - .join( - manifest_target_kind - .packages_folder(package_id.version_id().target()), - ) - .join(PACKAGES_CONTAINER_NAME), - &package_id, - ); + let container_folder = package_dir + .join( + manifest_target_kind.packages_folder(package_id.version_id().target()), + ) + .join(PACKAGES_CONTAINER_NAME) + .join(node.container_folder(&package_id)); fs::create_dir_all(&container_folder).await?; diff --git a/src/graph.rs b/src/graph.rs index 5c60e35..43dcb59 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -11,10 +11,7 @@ use crate::{ }, }; use serde::{Deserialize, Serialize}; -use std::{ - collections::BTreeMap, - path::{Path, PathBuf}, -}; +use std::{collections::BTreeMap, path::PathBuf}; /// A graph of dependencies pub type Graph = BTreeMap; @@ -47,23 +44,20 @@ impl DependencyGraphNode { } /// Returns the folder to store the contents of the package in - pub fn container_folder>(&self, path: &P, package_id: &PackageId) -> PathBuf { + pub fn container_folder(&self, package_id: &PackageId) -> PathBuf { let (name, version) = package_id.parts(); if self.pkg_ref.like_wally() { - return path - .as_ref() - .join(format!( - "{}_{}@{}", - package_id.name().as_str().0, - name.as_str().1, - version - )) - .join(name.as_str().1); + return PathBuf::from(format!( + "{}_{}@{}", + package_id.name().as_str().0, + name.as_str().1, + version + )) + .join(name.as_str().1); } - path.as_ref() - .join(name.escaped()) + PathBuf::from(name.escaped()) .join(version.to_string()) .join(name.as_str().1) } diff --git a/src/linking/mod.rs b/src/linking/mod.rs index 29c377c..0b3062a 100644 --- a/src/linking/mod.rs +++ b/src/linking/mod.rs @@ -91,16 +91,13 @@ impl Project { return Ok((package_id, vec![])); }; - let container_folder = node.node.container_folder( - &project - .package_dir() - .join( - manifest_target_kind - .packages_folder(package_id.version_id().target()), - ) - .join(PACKAGES_CONTAINER_NAME), - &package_id, - ); + let container_folder = project + .package_dir() + .join( + manifest_target_kind.packages_folder(package_id.version_id().target()), + ) + .join(PACKAGES_CONTAINER_NAME) + .join(node.node.container_folder(&package_id)); let types = if lib_file.as_str() != LINK_LIB_NO_FILE_FOUND { let lib_file = lib_file.to_path(&container_folder); @@ -274,9 +271,8 @@ impl Project { .await?; let packages_container_folder = base_folder.join(PACKAGES_CONTAINER_NAME); - let container_folder = node - .node - .container_folder(&packages_container_folder, &package_id); + let container_folder = + packages_container_folder.join(node.node.container_folder(&package_id)); if let Some((alias, _, _)) = &node.node.direct { project @@ -320,9 +316,8 @@ impl Project { .await?; let packages_container_folder = base_folder.join(PACKAGES_CONTAINER_NAME); - let container_folder = dependency_node - .node - .container_folder(&packages_container_folder, dependency_id); + let container_folder = packages_container_folder + .join(dependency_node.node.container_folder(dependency_id)); let linker_folder = create_and_canonicalize(node_container_folder.join( node.node.base_folder( diff --git a/src/patches.rs b/src/patches.rs index d31226a..30c363f 100644 --- a/src/patches.rs +++ b/src/patches.rs @@ -102,18 +102,16 @@ impl Project { continue; }; - let container_folder = node.container_folder( - &self - .package_dir() - .join( - manifest - .target - .kind() - .packages_folder(package_id.version_id().target()), - ) - .join(PACKAGES_CONTAINER_NAME), - &package_id, - ); + let container_folder = self + .package_dir() + .join( + manifest + .target + .kind() + .packages_folder(package_id.version_id().target()), + ) + .join(PACKAGES_CONTAINER_NAME) + .join(node.container_folder(&package_id)); let reporter = reporter.clone(); let span = tracing::info_span!("apply patch", package_id = package_id.to_string());