1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 19:47:45 +00:00

env: handle the error properly

instead of:
env: unknown error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
This commit is contained in:
Sylvestre Ledru 2025-01-07 23:53:52 +01:00
parent 8d55e4edd1
commit 58f6afdeb4
2 changed files with 22 additions and 10 deletions

23
src/uu/env/src/env.rs vendored
View file

@ -539,16 +539,19 @@ impl EnvAppData {
} }
return Err(exit.code().unwrap().into()); return Err(exit.code().unwrap().into());
} }
Err(ref err) Err(ref err) => match err.kind() {
if (err.kind() == io::ErrorKind::NotFound) io::ErrorKind::NotFound | io::ErrorKind::InvalidInput => {
|| (err.kind() == io::ErrorKind::InvalidInput) => return Err(self.make_error_no_such_file_or_dir(prog.deref()));
{ }
return Err(self.make_error_no_such_file_or_dir(prog.deref())); io::ErrorKind::PermissionDenied => {
} uucore::show_error!("{}: Permission denied", prog.quote());
Err(e) => { return Err(126.into());
uucore::show_error!("unknown error: {:?}", e); }
return Err(126.into()); _ => {
} uucore::show_error!("unknown error: {:?}", err);
return Err(126.into());
}
},
Ok(_) => (), Ok(_) => (),
} }
Ok(()) Ok(())

View file

@ -80,6 +80,15 @@ fn test_env_version() {
.stdout_contains(util_name!()); .stdout_contains(util_name!());
} }
#[test]
fn test_env_permissions() {
new_ucmd!()
.arg(".")
.fails()
.code_is(126)
.stderr_is("env: '.': Permission denied\n");
}
#[test] #[test]
fn test_echo() { fn test_echo() {
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]