Combine filed missing messages into one INFO line

master
Mason Stallmo 7 years ago
parent e47af81f8f
commit b82fa7db65
  1. 24
      src/manifest/mod.rs

@ -38,22 +38,23 @@ struct CargoPackage {
impl CargoPackage { impl CargoPackage {
fn check_optional_fields(&self) { fn check_optional_fields(&self) {
let info_fmt = |field| { let mut messages = vec![];
format!(
"Field '{}' is missing from Cargo.toml. It is not necessary, but recommended",
field
)
};
if self.description.is_none() { if self.description.is_none() {
PBAR.info(&info_fmt("description")); messages.push("description");
} }
if self.repository.is_none() { if self.repository.is_none() {
PBAR.info(&info_fmt("repository")); messages.push("repository");
} }
if self.license.is_none() { if self.license.is_none() {
PBAR.info(&info_fmt("license")); messages.push("license");
} }
match messages.len() {
1 => PBAR.info(&format!("Optional field missing from Cargo.toml: '{}'. This is not necessary, but recommended", messages[0])),
2 => PBAR.info(&format!("Optional fields missing from Cargo.toml: '{}', '{}'. These are not necessary, but recommended", messages[0], messages[1])),
3 => PBAR.info(&format!("Optional fields missing from Cargo.toml: '{}', '{}', and '{}'. These are not necessary, but recommended", messages[0], messages[1], messages[2])),
_ => ()
};
} }
} }
@ -81,8 +82,7 @@ fn read_cargo_toml(path: &Path) -> Result<CargoManifest, Error> {
return Error::crate_config(&format!( return Error::crate_config(&format!(
"Crate directory is missing a `Cargo.toml` file; is `{}` the wrong directory?", "Crate directory is missing a `Cargo.toml` file; is `{}` the wrong directory?",
path.display() path.display()
)) )).map(|_| unreachable!());
.map(|_| unreachable!());
} }
let mut cargo_file = File::open(manifest_path)?; let mut cargo_file = File::open(manifest_path)?;
let mut cargo_contents = String::new(); let mut cargo_contents = String::new();

Loading…
Cancel
Save