Skip to content

Commit 8fd575a

Browse files
authored
Merge pull request #346 from HallerPatrick/master
Added pub package manager for dart projects
2 parents bf2ffa5 + 1e46f4f commit 8fd575a

File tree

5 files changed

+34
-1
lines changed

5 files changed

+34
-1
lines changed

Diff for: Cargo.lock

+16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ image = "0.23.12"
3333
regex = "1"
3434
error-chain = "0.12"
3535
toml = "0.5.7"
36+
yaml-rust = "0.4"
3637
serde = "1.0.118"
3738
serde_json = "1.0.60"
3839

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

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ impl DependencyDetector {
3636
String::from("requirements.txt"),
3737
(package_parser::pip, package_manager::PackageManager::Pip),
3838
);
39+
package_managers.insert(
40+
String::from("pubspec.yaml"),
41+
(package_parser::pub_packages, package_manager::PackageManager::Pub),
42+
);
3943

4044
DependencyDetector { package_managers }
4145
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pub enum PackageManager {
66
GoModules,
77
Npm,
88
Pip,
9+
Pub,
910
}
1011

1112
impl std::fmt::Display for PackageManager {
@@ -15,6 +16,7 @@ impl std::fmt::Display for PackageManager {
1516
PackageManager::GoModules => write!(f, "go modules"),
1617
PackageManager::Npm => write!(f, "npm"),
1718
PackageManager::Pip => write!(f, "pip"),
19+
PackageManager::Pub => write!(f, "pub"),
1820
}
1921
}
2022
}

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

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::onefetch::error::*;
2-
use {regex::Regex, toml::Value};
2+
use {regex::Regex, toml::Value, yaml_rust::YamlLoader};
33

44
pub fn cargo(contents: &str) -> Result<usize> {
55
let parsed = contents.parse::<Value>()?;
@@ -43,3 +43,13 @@ pub fn pip(contents: &str) -> Result<usize> {
4343

4444
Ok(count)
4545
}
46+
47+
pub fn pub_packages(contents: &str) -> Result<usize> {
48+
match YamlLoader::load_from_str(contents) {
49+
Ok(parsed) => match &parsed[0]["dependencies"].as_hash() {
50+
Some(deps) => Ok(deps.len()),
51+
None => Ok(0),
52+
},
53+
Err(_) => Ok(0),
54+
}
55+
}

0 commit comments

Comments
 (0)