Skip to content

Commit 582b246

Browse files
committed
feat: add support for go modules
Signed-off-by: Luke-zhang-04 <[email protected]>
1 parent 1c62703 commit 582b246

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/onefetch/deps.rs

+13
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
use {
22
crate::onefetch::error::*,
3+
regex::Regex,
34
std::collections::HashMap,
45
std::{ffi::OsStr, fs},
56
};
67

78
pub enum PackageManager {
89
Npm,
10+
GoModules,
911
}
1012

1113
impl std::fmt::Display for PackageManager {
1214
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1315
match *self {
1416
PackageManager::Npm => write!(f, "Npm"),
17+
PackageManager::GoModules => write!(f, "Go Modules"),
1518
}
1619
}
1720
}
@@ -28,11 +31,21 @@ fn npm(contents: &str) -> Option<i32> {
2831
Some(parsed["dependencies"].len() as i32)
2932
}
3033

34+
fn gomodules(contents: &str) -> Option<i32> {
35+
let count = Regex::new(r"v[0-9].").unwrap().find_iter(contents).count();
36+
37+
Some(count as i32)
38+
}
39+
3140
impl Detector {
3241
pub fn new() -> Self {
3342
let mut package_managers: HashMap<String, (DependencyParser, PackageManager)> =
3443
HashMap::new();
3544
package_managers.insert(String::from("package.json"), (npm, PackageManager::Npm));
45+
package_managers.insert(
46+
String::from("go.mod"),
47+
(gomodules, PackageManager::GoModules),
48+
);
3649

3750
Self { package_managers }
3851
}

0 commit comments

Comments
 (0)