aboutsummaryrefslogtreecommitdiff
path: root/mling
diff options
context:
space:
mode:
Diffstat (limited to 'mling')
-rw-r--r--mling/src/cli.rs15
-rw-r--r--mling/src/pkg_mgr/installer.rs0
-rw-r--r--mling/src/pkg_mgr/mod.rs3
-rw-r--r--mling/src/proj_mgr/metadata.rs8
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)