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:
commit
c9d982fb4d
1 changed files with 11 additions and 9 deletions
|
@ -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> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue