diff options
Diffstat (limited to 'mling')
| -rw-r--r-- | mling/src/cli.rs | 15 | ||||
| -rw-r--r-- | mling/src/pkg_mgr/installer.rs | 0 | ||||
| -rw-r--r-- | mling/src/pkg_mgr/mod.rs | 3 | ||||
| -rw-r--r-- | mling/src/proj_mgr/metadata.rs | 8 |
4 files changed, 20 insertions, 6 deletions
diff --git a/mling/src/cli.rs b/mling/src/cli.rs index 21f7220..6a4c7d8 100644 --- a/mling/src/cli.rs +++ b/mling/src/cli.rs @@ -116,6 +116,13 @@ fn standard_output_setup(program: &mut Program<ThisProgram>) { } fn resolve_manifest_path(provided: Option<String>) -> PathBuf { + let p = ThisProgram::this(); + let disable_error_output = + // --no-error + !p.stdout_setting.error_output || + // or --quiet/--silence + p.stdout_setting.quiet; + if let Some(path) = provided { let p = PathBuf::from_str(&path).unwrap(); if p.is_dir() { @@ -123,7 +130,9 @@ fn resolve_manifest_path(provided: Option<String>) -> PathBuf { if candidate.exists() { return candidate; } - eprintln_cargo!("`{}` is not a crate root", p.display()); + if !disable_error_output { + eprintln_cargo!("`{}` is not a crate root", p.display()); + } exit(1); } return p; @@ -137,7 +146,9 @@ fn resolve_manifest_path(provided: Option<String>) -> PathBuf { } if !dir.pop() { // Reached filesystem root without finding Cargo.toml - eprintln_cargo!("`{}` is not a crate root", current_dir().unwrap().display()); + if !disable_error_output { + eprintln_cargo!("`{}` is not a crate root", current_dir().unwrap().display()); + } exit(1); } } diff --git a/mling/src/pkg_mgr/installer.rs b/mling/src/pkg_mgr/installer.rs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mling/src/pkg_mgr/installer.rs diff --git a/mling/src/pkg_mgr/mod.rs b/mling/src/pkg_mgr/mod.rs index d03e1d8..030529e 100644 --- a/mling/src/pkg_mgr/mod.rs +++ b/mling/src/pkg_mgr/mod.rs @@ -4,6 +4,9 @@ use mingling::{ macros::{dispatcher, program_setup}, }; +mod installer; +pub use installer::*; + dispatcher!("install"); dispatcher!("ls.namespace", CMDListNamespace => EntryListNamespace); dispatcher!("rm.namespace", CMDRemoveNamespace => EntryRemoveNamespace); diff --git a/mling/src/proj_mgr/metadata.rs b/mling/src/proj_mgr/metadata.rs index 84da69f..1ba24e1 100644 --- a/mling/src/proj_mgr/metadata.rs +++ b/mling/src/proj_mgr/metadata.rs @@ -16,10 +16,10 @@ pub fn read_metadata(cargo_toml: &PathBuf) -> Result<CargoLockFile, std::io::Err if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); - return Err(std::io::Error::new( - std::io::ErrorKind::Other, - format!("cargo metadata failed: {}", stderr), - )); + return Err(std::io::Error::other(format!( + "cargo metadata failed: {}", + stderr + ))); } let lock_file: CargoLockFile = serde_json::from_slice(&output.stdout) |
