diff --git a/src/uu/sum/Cargo.toml b/src/uu/sum/Cargo.toml index a443bc781..7087d0023 100644 --- a/src/uu/sum/Cargo.toml +++ b/src/uu/sum/Cargo.toml @@ -15,7 +15,7 @@ edition = "2021" path = "src/sum.rs" [dependencies] -clap = { version = "3.2", features = ["wrap_help", "cargo"] } +clap = { version = "4.0", features = ["wrap_help", "cargo"] } uucore = { version=">=0.0.16", package="uucore", path="../../uucore" } [[bin]] diff --git a/src/uu/sum/src/sum.rs b/src/uu/sum/src/sum.rs index 825071aee..90717badf 100644 --- a/src/uu/sum/src/sum.rs +++ b/src/uu/sum/src/sum.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, Arg, Command}; +use clap::{crate_version, Arg, ArgAction, Command}; use std::fs::File; use std::io::{stdin, Read}; use std::path::Path; @@ -118,7 +118,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { None => vec!["-".to_owned()], }; - let sysv = matches.contains_id(options::SYSTEM_V_COMPATIBLE); + let sysv = matches.get_flag(options::SYSTEM_V_COMPATIBLE); let print_names = if sysv { files.len() > 1 || files[0] != "-" @@ -149,7 +149,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> Command<'a> { +pub fn uu_app() -> Command { Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) @@ -158,19 +158,21 @@ pub fn uu_app<'a>() -> Command<'a> { .infer_long_args(true) .arg( Arg::new(options::FILE) - .multiple_occurrences(true) + .action(ArgAction::Append) .hide(true) .value_hint(clap::ValueHint::FilePath), ) .arg( Arg::new(options::BSD_COMPATIBLE) .short('r') - .help("use the BSD sum algorithm, use 1K blocks (default)"), + .help("use the BSD sum algorithm, use 1K blocks (default)") + .action(ArgAction::SetTrue), ) .arg( Arg::new(options::SYSTEM_V_COMPATIBLE) .short('s') .long(options::SYSTEM_V_COMPATIBLE) - .help("use System V sum algorithm, use 512 bytes blocks"), + .help("use System V sum algorithm, use 512 bytes blocks") + .action(ArgAction::SetTrue), ) }