Skip to content

Commit 9311d49

Browse files
committed
fix: detect yarn.lock with absolute directory
Signed-off-by: Luke-zhang-04 <[email protected]>
1 parent afc7ef0 commit 9311d49

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

Diff for: src/onefetch/deps/mod.rs

+12-2
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,21 @@ impl DependencyDetector {
6060
.unwrap_or_default()
6161
})
6262
.map(|entry| {
63-
let (parser, package_manager) =
63+
let (parser, found_package_manager) =
6464
&self.package_managers[entry.file_name().unwrap().to_str().unwrap()];
6565
let contents = fs::read_to_string(entry)?;
6666
let number_of_deps = parser(&contents)?;
67-
Ok(format!("{} ({})", number_of_deps, package_manager))
67+
let used_package_manager;
68+
69+
if found_package_manager == &package_manager::PackageManager::Npm
70+
&& std::path::Path::new(&format!("{}yarn.lock", dir)).exists()
71+
{
72+
used_package_manager = &package_manager::PackageManager::Yarn;
73+
} else {
74+
used_package_manager = found_package_manager;
75+
}
76+
77+
Ok(format!("{} ({})", number_of_deps, used_package_manager))
6878
})
6979
.filter_map(Result::ok)
7080
.collect::<Vec<_>>();

Diff for: src/onefetch/deps/package_manager.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
1+
#[derive(PartialEq)]
12
pub enum PackageManager {
23
Cargo,
34
GoModules,
45
Npm,
56
Pip,
7+
Yarn,
68
}
79

810
impl std::fmt::Display for PackageManager {
911
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1012
match *self {
1113
PackageManager::Cargo => write!(f, "Cargo"),
1214
PackageManager::GoModules => write!(f, "Go Modules"),
13-
PackageManager::Npm => {
14-
if std::path::Path::new("./yarn.lock").exists() {
15-
write!(f, "Yarn")
16-
} else {
17-
write!(f, "Npm")
18-
}
19-
}
15+
PackageManager::Npm => write!(f, "Npm"),
2016
PackageManager::Pip => write!(f, "Pip"),
17+
PackageManager::Yarn => write!(f, "Yarn"),
2118
}
2219
}
2320
}

0 commit comments

Comments
 (0)