diff --git a/src/uu/printenv/Cargo.toml b/src/uu/printenv/Cargo.toml index 226ac8fc5..99f673cbf 100644 --- a/src/uu/printenv/Cargo.toml +++ b/src/uu/printenv/Cargo.toml @@ -15,7 +15,7 @@ edition = "2021" path = "src/printenv.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/printenv/src/printenv.rs b/src/uu/printenv/src/printenv.rs index fe550b967..d2f3291a0 100644 --- a/src/uu/printenv/src/printenv.rs +++ b/src/uu/printenv/src/printenv.rs @@ -7,7 +7,7 @@ /* last synced with: printenv (GNU coreutils) 8.13 */ -use clap::{crate_version, Arg, Command}; +use clap::{crate_version, Arg, ArgAction, Command}; use std::env; use uucore::{error::UResult, format_usage}; @@ -27,7 +27,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .map(|v| v.map(ToString::to_string).collect()) .unwrap_or_default(); - let separator = if matches.contains_id(OPT_NULL) { + let separator = if matches.get_flag(OPT_NULL) { "\x00" } else { "\n" @@ -56,7 +56,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> Command<'a> { +pub fn uu_app() -> Command { Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) @@ -66,12 +66,12 @@ pub fn uu_app<'a>() -> Command<'a> { Arg::new(OPT_NULL) .short('0') .long(OPT_NULL) - .help("end each output line with 0 byte rather than newline"), + .help("end each output line with 0 byte rather than newline") + .action(ArgAction::SetTrue), ) .arg( Arg::new(ARG_VARIABLES) - .multiple_occurrences(true) - .takes_value(true) - .min_values(1), + .action(ArgAction::Append) + .num_args(1..), ) }