1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-08-01 13:37:48 +00:00

basename: use UResult

This commit is contained in:
Thomas Queiroz 2021-11-16 17:51:56 -03:00
parent 00769af807
commit 2dc4cba64a
No known key found for this signature in database
GPG key ID: 229D2DDF7ECA5F8F

View file

@ -7,11 +7,10 @@
// spell-checker:ignore (ToDO) fullname
#[macro_use]
extern crate uucore;
use clap::{crate_version, App, Arg};
use std::path::{is_separator, PathBuf};
use uucore::display::Quotable;
use uucore::error::{UResult, UUsageError};
use uucore::InvalidEncodingHandling;
static SUMMARY: &str = "Print NAME with any leading directory components removed
@ -32,7 +31,8 @@ pub mod options {
pub static ZERO: &str = "zero";
}
pub fn uumain(args: impl uucore::Args) -> i32 {
#[uucore_procs::gen_uumain]
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let args = args
.collect_str(InvalidEncodingHandling::ConvertLossy)
.accept_any();
@ -44,12 +44,7 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
// too few arguments
if !matches.is_present(options::NAME) {
crash!(
1,
"{1}\nTry '{0} --help' for more information.",
uucore::execution_phrase(),
"missing operand"
);
return Err(UUsageError::new(1, "missing operand".to_string()));
}
let opt_suffix = matches.is_present(options::SUFFIX);
@ -58,12 +53,18 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
let multiple_paths = opt_suffix || opt_multiple;
// too many arguments
if !multiple_paths && matches.occurrences_of(options::NAME) > 2 {
crash!(
return Err(UUsageError::new(
1,
"extra operand '{1}'\nTry '{0} --help' for more information.",
uucore::execution_phrase(),
matches.values_of(options::NAME).unwrap().nth(2).unwrap()
);
format!(
"extra operand {}",
matches
.values_of(options::NAME)
.unwrap()
.nth(2)
.unwrap()
.quote()
),
));
}
let suffix = if opt_suffix {
@ -89,7 +90,7 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
print!("{}{}", basename(path, suffix), line_ending);
}
0
Ok(())
}
pub fn uu_app() -> App<'static, 'static> {