1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 19:17:43 +00:00

Merge pull request #2848 from jfinkels/realpath-uresult

realpath: return UResult from uumain() function
This commit is contained in:
Sylvestre Ledru 2022-01-07 21:51:57 +01:00 committed by GitHub
commit c9d982fb4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -17,6 +17,7 @@ use std::{
};
use uucore::{
display::{print_verbatim, Quotable},
error::{FromIo, UResult},
fs::{canonicalize, MissingHandling, ResolveMode},
};
@ -36,7 +37,8 @@ fn usage() -> String {
format!("{0} [OPTION]... FILE...", uucore::execution_phrase())
}
pub fn uumain(args: impl uucore::Args) -> i32 {
#[uucore_procs::gen_uumain]
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let usage = usage();
let matches = uu_app().usage(&usage[..]).get_matches_from(args);
@ -60,16 +62,16 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
} else {
MissingHandling::Normal
};
let mut retcode = 0;
for path in &paths {
if let Err(e) = resolve_path(path, strip, zero, logical, can_mode) {
if !quiet {
show_error!("{}: {}", path.maybe_quote(), e);
}
retcode = 1
};
let result = resolve_path(path, strip, zero, logical, can_mode);
if !quiet {
show_if_err!(result.map_err_context(|| path.maybe_quote().to_string()));
}
}
retcode
// Although we return `Ok`, it is possible that a call to
// `show!()` above has set the exit code for the program to a
// non-zero integer.
Ok(())
}
pub fn uu_app() -> App<'static, 'static> {