diff --git a/build.rs b/build.rs index c4f135e64..50b8cfa3f 100644 --- a/build.rs +++ b/build.rs @@ -43,7 +43,7 @@ pub fn main() { let mut tf = File::create(Path::new(&out_dir).join("test_modules.rs")).unwrap(); mf.write_all( - "type UtilityMap = phf::Map<&'static str, (fn(T) -> i32, fn() -> App<'static>)>;\n\ + "type UtilityMap = phf::Map<&'static str, (fn(T) -> i32, fn() -> Command<'static>)>;\n\ \n\ fn util_map() -> UtilityMap {\n" .as_bytes(), diff --git a/src/bin/coreutils.rs b/src/bin/coreutils.rs index fcd86c93f..7a8986035 100644 --- a/src/bin/coreutils.rs +++ b/src/bin/coreutils.rs @@ -5,7 +5,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -use clap::{App, Arg}; +use clap::{Arg, Command}; use clap_complete::Shell; use std::cmp; use std::ffi::OsStr; @@ -138,7 +138,7 @@ fn gen_completions( .chain(util_map.keys().copied()) .collect(); - let matches = App::new("completion") + let matches = Command::new("completion") .about("Prints completions to stdout") .arg( Arg::new("utility") @@ -155,7 +155,7 @@ fn gen_completions( let utility = matches.value_of("utility").unwrap(); let shell = matches.value_of("shell").unwrap(); - let mut app = if utility == "coreutils" { + let mut command = if utility == "coreutils" { gen_coreutils_app(util_map) } else { util_map.get(utility).unwrap().1() @@ -163,15 +163,15 @@ fn gen_completions( let shell: Shell = shell.parse().unwrap(); let bin_name = std::env::var("PROG_PREFIX").unwrap_or_default() + utility; - clap_complete::generate(shell, &mut app, bin_name, &mut io::stdout()); + clap_complete::generate(shell, &mut command, bin_name, &mut io::stdout()); io::stdout().flush().unwrap(); process::exit(0); } -fn gen_coreutils_app(util_map: &UtilityMap) -> App<'static> { - let mut app = App::new("coreutils"); +fn gen_coreutils_app(util_map: &UtilityMap) -> Command<'static> { + let mut command = Command::new("coreutils"); for (_, (_, sub_app)) in util_map { - app = app.subcommand(sub_app()); + command = command.subcommand(sub_app()); } - app + command } diff --git a/src/bin/uudoc.rs b/src/bin/uudoc.rs index a6bc16cc2..24c347fe7 100644 --- a/src/bin/uudoc.rs +++ b/src/bin/uudoc.rs @@ -4,7 +4,7 @@ // file that was distributed with this source code. // spell-checker:ignore tldr -use clap::App; +use clap::Command; use std::ffi::OsString; use std::fs::File; use std::io::Cursor; @@ -46,13 +46,13 @@ fn main() -> io::Result<()> { let mut utils = utils.entries().collect::>(); utils.sort(); - for (&name, (_, app)) in utils { + for (&name, (_, command)) in utils { if name == "[" { continue; } let p = format!("docs/src/utils/{}.md", name); if let Ok(f) = File::create(&p) { - write_markdown(f, &mut app(), name, &mut tldr_zip)?; + write_markdown(f, &mut command(), name, &mut tldr_zip)?; println!("Wrote to '{}'", p); } else { println!("Error writing to {}", p); @@ -64,29 +64,29 @@ fn main() -> io::Result<()> { fn write_markdown( mut w: impl Write, - app: &mut App, + command: &mut Command, name: &str, tldr_zip: &mut zip::ZipArchive, ) -> io::Result<()> { write!(w, "# {}\n\n", name)?; - write_version(&mut w, app)?; - write_usage(&mut w, app, name)?; - write_description(&mut w, app)?; - write_options(&mut w, app)?; + write_version(&mut w, command)?; + write_usage(&mut w, command, name)?; + write_description(&mut w, command)?; + write_options(&mut w, command)?; write_examples(&mut w, name, tldr_zip) } -fn write_version(w: &mut impl Write, app: &App) -> io::Result<()> { +fn write_version(w: &mut impl Write, command: &Command) -> io::Result<()> { writeln!( w, "
version: {}
", - app.render_version().split_once(' ').unwrap().1 + command.render_version().split_once(' ').unwrap().1 ) } -fn write_usage(w: &mut impl Write, app: &mut App, name: &str) -> io::Result<()> { +fn write_usage(w: &mut impl Write, command: &mut Command, name: &str) -> io::Result<()> { writeln!(w, "\n```")?; - let mut usage: String = app + let mut usage: String = command .render_usage() .lines() .skip(1) @@ -99,8 +99,8 @@ fn write_usage(w: &mut impl Write, app: &mut App, name: &str) -> io::Result<()> writeln!(w, "```") } -fn write_description(w: &mut impl Write, app: &App) -> io::Result<()> { - if let Some(about) = app.get_long_about().or_else(|| app.get_about()) { +fn write_description(w: &mut impl Write, command: &Command) -> io::Result<()> { + if let Some(about) = command.get_long_about().or_else(|| command.get_about()) { writeln!(w, "{}", about) } else { Ok(()) @@ -152,10 +152,10 @@ fn get_zip_content(archive: &mut ZipArchive, name: &str) -> Op Some(s) } -fn write_options(w: &mut impl Write, app: &App) -> io::Result<()> { +fn write_options(w: &mut impl Write, command: &Command) -> io::Result<()> { writeln!(w, "

Options

")?; write!(w, "
")?; - for arg in app.get_arguments() { + for arg in command.get_arguments() { write!(w, "
")?; let mut first = true; for l in arg.get_long_and_visible_aliases().unwrap_or_default() { diff --git a/src/uu/arch/src/arch.rs b/src/uu/arch/src/arch.rs index b588adbb9..502e2d5a0 100644 --- a/src/uu/arch/src/arch.rs +++ b/src/uu/arch/src/arch.rs @@ -8,7 +8,7 @@ use platform_info::*; -use clap::{crate_version, App, AppSettings}; +use clap::{crate_version, Command}; use uucore::error::{FromIo, UResult}; static ABOUT: &str = "Display machine architecture"; @@ -23,10 +23,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) } diff --git a/src/uu/base32/src/base32.rs b/src/uu/base32/src/base32.rs index ff1ba502a..4260c472e 100644 --- a/src/uu/base32/src/base32.rs +++ b/src/uu/base32/src/base32.rs @@ -7,7 +7,7 @@ use std::io::{stdin, Read}; -use clap::App; +use clap::Command; use uucore::{encoding::Format, error::UResult}; pub mod base_common; @@ -44,6 +44,6 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { ) } -pub fn uu_app<'a>() -> App<'a> { +pub fn uu_app<'a>() -> Command<'a> { base_common::base_app(ABOUT, USAGE) } diff --git a/src/uu/base32/src/base_common.rs b/src/uu/base32/src/base_common.rs index 1d4d8a19d..100c85b1f 100644 --- a/src/uu/base32/src/base_common.rs +++ b/src/uu/base32/src/base_common.rs @@ -18,7 +18,7 @@ use std::fs::File; use std::io::{BufReader, Stdin}; use std::path::Path; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; pub static BASE_CMD_PARSE_ERROR: i32 = 1; @@ -86,19 +86,19 @@ impl Config { } pub fn parse_base_cmd_args(args: impl uucore::Args, about: &str, usage: &str) -> UResult { - let app = base_app(about, usage); + let command = base_app(about, usage); let arg_list = args .collect_str(InvalidEncodingHandling::ConvertLossy) .accept_any(); - Config::from(&app.get_matches_from(arg_list)) + Config::from(&command.get_matches_from(arg_list)) } -pub fn base_app<'a>(about: &'a str, usage: &'a str) -> App<'a> { - App::new(uucore::util_name()) +pub fn base_app<'a>(about: &'a str, usage: &'a str) -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(about) .override_usage(format_usage(usage)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) // Format arguments. .arg( Arg::new(options::DECODE) diff --git a/src/uu/basename/src/basename.rs b/src/uu/basename/src/basename.rs index bf13fde7e..7b0a0a486 100644 --- a/src/uu/basename/src/basename.rs +++ b/src/uu/basename/src/basename.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) fullname -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::path::{is_separator, PathBuf}; use uucore::display::Quotable; use uucore::error::{UResult, UUsageError}; @@ -87,12 +87,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::MULTIPLE) .short('a') diff --git a/src/uu/basenc/src/basenc.rs b/src/uu/basenc/src/basenc.rs index 9e48cf80c..d47fe123a 100644 --- a/src/uu/basenc/src/basenc.rs +++ b/src/uu/basenc/src/basenc.rs @@ -8,7 +8,7 @@ //spell-checker:ignore (args) lsbf msbf -use clap::{App, Arg}; +use clap::{Arg, Command}; use uu_base32::base_common::{self, Config, BASE_CMD_PARSE_ERROR}; use uucore::{ @@ -40,12 +40,12 @@ const ENCODINGS: &[(&str, Format)] = &[ const USAGE: &str = "{} [OPTION]... [FILE]"; -pub fn uu_app<'a>() -> App<'a> { - let mut app = base_common::base_app(ABOUT, USAGE); +pub fn uu_app<'a>() -> Command<'a> { + let mut command = base_common::base_app(ABOUT, USAGE); for encoding in ENCODINGS { - app = app.arg(Arg::new(encoding.0).long(encoding.0)); + command = command.arg(Arg::new(encoding.0).long(encoding.0)); } - app + command } fn parse_cmd_args(args: impl uucore::Args) -> UResult<(Config, Format)> { diff --git a/src/uu/cat/src/cat.rs b/src/uu/cat/src/cat.rs index 0a1ba2559..edba1b8d0 100644 --- a/src/uu/cat/src/cat.rs +++ b/src/uu/cat/src/cat.rs @@ -14,7 +14,7 @@ extern crate unix_socket; // last synced with: cat (GNU coreutils) 8.13 -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::{metadata, File}; use std::io::{self, Read, Write}; use thiserror::Error; @@ -239,13 +239,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { cat_files(&files, &options) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE) .hide(true) diff --git a/src/uu/chcon/src/chcon.rs b/src/uu/chcon/src/chcon.rs index d033b62c1..8f5e0f26b 100644 --- a/src/uu/chcon/src/chcon.rs +++ b/src/uu/chcon/src/chcon.rs @@ -6,7 +6,7 @@ use uucore::error::{UResult, USimpleError, UUsageError}; use uucore::format_usage; use uucore::{display::Quotable, show_error, show_warning}; -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use selinux::{OpaqueSecurityContext, SecurityContext}; use std::borrow::Cow; @@ -65,7 +65,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(r) => r, Err(r) => { if let Error::CommandLine(r) = &r { - match r.kind { + match r.kind() { clap::ErrorKind::DisplayHelp | clap::ErrorKind::DisplayVersion => { println!("{}", r); return Ok(()); @@ -154,12 +154,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Err(libc::EXIT_FAILURE.into()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(VERSION) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::dereference::DEREFERENCE) .long(options::dereference::DEREFERENCE) @@ -303,7 +303,7 @@ struct Options { files: Vec, } -fn parse_command_line(config: clap::App, args: impl uucore::Args) -> Result { +fn parse_command_line(config: clap::Command, args: impl uucore::Args) -> Result { let matches = config.try_get_matches_from(args)?; let verbose = matches.is_present(options::VERBOSE); diff --git a/src/uu/chgrp/src/chgrp.rs b/src/uu/chgrp/src/chgrp.rs index affaf86a3..ce1cb5f37 100644 --- a/src/uu/chgrp/src/chgrp.rs +++ b/src/uu/chgrp/src/chgrp.rs @@ -13,7 +13,7 @@ use uucore::error::{FromIo, UResult, USimpleError}; use uucore::format_usage; use uucore::perms::{chown_base, options, IfFrom}; -use clap::{App, AppSettings, Arg, ArgMatches}; +use clap::{Arg, ArgMatches, Command}; use std::fs; use std::os::unix::fs::MetadataExt; @@ -54,12 +54,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { chown_base(uu_app(), args, options::ARG_GROUP, parse_gid_and_uid, true) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(VERSION) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::verbosity::CHANGES) .short('c') diff --git a/src/uu/chmod/src/chmod.rs b/src/uu/chmod/src/chmod.rs index c2b51ae5e..25a37c372 100644 --- a/src/uu/chmod/src/chmod.rs +++ b/src/uu/chmod/src/chmod.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) Chmoder cmode fmode fperm fref ugoa RFILE RFILE's -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs; use std::os::unix::fs::{MetadataExt, PermissionsExt}; use std::path::Path; @@ -112,12 +112,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { chmoder.chmod(&files) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::CHANGES) .long(options::CHANGES) diff --git a/src/uu/chown/src/chown.rs b/src/uu/chown/src/chown.rs index 27a989847..c1d7d1420 100644 --- a/src/uu/chown/src/chown.rs +++ b/src/uu/chown/src/chown.rs @@ -14,7 +14,7 @@ use uucore::perms::{chown_base, options, IfFrom}; use uucore::error::{FromIo, UResult, USimpleError}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::fs; use std::os::unix::fs::MetadataExt; @@ -63,12 +63,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { ) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::verbosity::CHANGES) .short('c') diff --git a/src/uu/chroot/src/chroot.rs b/src/uu/chroot/src/chroot.rs index d18264566..713336104 100644 --- a/src/uu/chroot/src/chroot.rs +++ b/src/uu/chroot/src/chroot.rs @@ -10,11 +10,11 @@ mod error; use crate::error::ChrootError; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::ffi::CString; use std::io::Error; use std::path::Path; -use std::process::Command; +use std::process; use uucore::error::{set_exit_code, UResult}; use uucore::libc::{self, chroot, setgid, setgroups, setuid}; use uucore::{entries, format_usage, InvalidEncodingHandling}; @@ -77,7 +77,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // NOTE: Tests can only trigger code beyond this point if they're invoked with root permissions set_context(newroot, &matches)?; - let pstatus = match Command::new(chroot_command).args(chroot_args).status() { + let pstatus = match process::Command::new(chroot_command) + .args(chroot_args) + .status() + { Ok(status) => status, Err(e) => return Err(ChrootError::CommandFailed(command[0].to_string(), e).into()), }; @@ -91,12 +94,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::NEWROOT) .hide(true) diff --git a/src/uu/cksum/src/cksum.rs b/src/uu/cksum/src/cksum.rs index 7f7ba9ed3..e901e0820 100644 --- a/src/uu/cksum/src/cksum.rs +++ b/src/uu/cksum/src/cksum.rs @@ -6,7 +6,7 @@ // file that was distributed with this source code. // spell-checker:ignore (ToDO) fname -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{self, stdin, BufReader, Read}; use std::path::Path; @@ -140,13 +140,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .about(SUMMARY) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE) .hide(true) diff --git a/src/uu/comm/src/comm.rs b/src/uu/comm/src/comm.rs index 8064dd216..2207493d3 100644 --- a/src/uu/comm/src/comm.rs +++ b/src/uu/comm/src/comm.rs @@ -15,7 +15,7 @@ use uucore::error::FromIo; use uucore::error::UResult; use uucore::{format_usage, InvalidEncodingHandling}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; static ABOUT: &str = "compare two sorted files line by line"; static LONG_HELP: &str = ""; @@ -143,13 +143,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::COLUMN_1) .short('1') diff --git a/src/uu/cp/src/cp.rs b/src/uu/cp/src/cp.rs index a4a512d6b..1152e8def 100644 --- a/src/uu/cp/src/cp.rs +++ b/src/uu/cp/src/cp.rs @@ -28,7 +28,7 @@ use winapi::um::fileapi::GetFileInformationByHandle; use std::borrow::Cow; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use filetime::FileTime; #[cfg(unix)] use libc::mkfifo; @@ -296,7 +296,7 @@ static DEFAULT_ATTRIBUTES: &[Attribute] = &[ Attribute::Timestamps, ]; -pub fn uu_app<'a>() -> App<'a> { +pub fn uu_app<'a>() -> Command<'a> { const MODE_ARGS: &[&str] = &[ options::LINK, options::REFLINK, @@ -304,11 +304,11 @@ pub fn uu_app<'a>() -> App<'a> { options::ATTRIBUTES_ONLY, options::COPY_CONTENTS, ]; - App::new(uucore::util_name()) + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::TARGET_DIRECTORY) .short('t') .conflicts_with(options::NO_TARGET_DIRECTORY) @@ -389,7 +389,7 @@ pub fn uu_app<'a>() -> App<'a> { .long(options::PRESERVE) .takes_value(true) .multiple_occurrences(true) - .use_delimiter(true) + .use_value_delimiter(true) .possible_values(PRESERVABLE_ATTRIBUTES) .min_values(0) .value_name("ATTR_LIST") diff --git a/src/uu/csplit/src/csplit.rs b/src/uu/csplit/src/csplit.rs index 7793a8637..a0b739935 100644 --- a/src/uu/csplit/src/csplit.rs +++ b/src/uu/csplit/src/csplit.rs @@ -12,7 +12,7 @@ use std::{ io::{BufRead, BufWriter, Write}, }; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use regex::Regex; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; @@ -746,12 +746,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::SUFFIX_FORMAT) .short('b') diff --git a/src/uu/cut/src/cut.rs b/src/uu/cut/src/cut.rs index ce82a2737..2264f4f26 100644 --- a/src/uu/cut/src/cut.rs +++ b/src/uu/cut/src/cut.rs @@ -11,7 +11,7 @@ extern crate uucore; use bstr::io::BufReadExt; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, stdout, BufReader, BufWriter, Read, Write}; use std::path::Path; @@ -533,14 +533,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) .after_help(LONG_HELP) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BYTES) .short('b') diff --git a/src/uu/date/src/date.rs b/src/uu/date/src/date.rs index 18e06aef4..8946768d5 100644 --- a/src/uu/date/src/date.rs +++ b/src/uu/date/src/date.rs @@ -11,7 +11,7 @@ use chrono::{DateTime, FixedOffset, Local, Offset, Utc}; #[cfg(windows)] use chrono::{Datelike, Timelike}; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; #[cfg(all(unix, not(target_os = "macos"), not(target_os = "redox")))] use libc::{clock_settime, timespec, CLOCK_REALTIME}; use std::fs::File; @@ -254,12 +254,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_DATE) .short('d') diff --git a/src/uu/dd/src/dd.rs b/src/uu/dd/src/dd.rs index d8bc3acd3..10a0ff9c2 100644 --- a/src/uu/dd/src/dd.rs +++ b/src/uu/dd/src/dd.rs @@ -34,7 +34,7 @@ use std::sync::mpsc; use std::thread; use std::time; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use gcd::Gcd; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; @@ -730,11 +730,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::INFILE) .long(options::INFILE) @@ -846,8 +846,8 @@ Printing performance stats is also triggered by the INFO signal (where supported .long(options::CONV) .takes_value(true) .multiple_occurrences(true) - .use_delimiter(true) - .require_delimiter(true) + .use_value_delimiter(true) + .require_value_delimiter(true) .multiple_values(true) .require_equals(true) .value_name("CONV") @@ -887,8 +887,8 @@ Conversion Flags: .long(options::IFLAG) .takes_value(true) .multiple_occurrences(true) - .use_delimiter(true) - .require_delimiter(true) + .use_value_delimiter(true) + .require_value_delimiter(true) .multiple_values(true) .require_equals(true) .value_name("FLAG") @@ -917,8 +917,8 @@ General-Flags .long(options::OFLAG) .takes_value(true) .multiple_occurrences(true) - .use_delimiter(true) - .require_delimiter(true) + .use_value_delimiter(true) + .require_value_delimiter(true) .multiple_values(true) .require_equals(true) .value_name("FLAG") diff --git a/src/uu/df/src/df.rs b/src/uu/df/src/df.rs index 338648e10..466d027bc 100644 --- a/src/uu/df/src/df.rs +++ b/src/uu/df/src/df.rs @@ -15,7 +15,7 @@ use uucore::error::{UResult, USimpleError}; use uucore::format_usage; use uucore::fsext::{read_fs_list, MountInfo}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::fmt; use std::path::Path; @@ -316,12 +316,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_ALL) .short('a') @@ -385,7 +385,7 @@ pub fn uu_app<'a>() -> App<'a> { Arg::new(OPT_OUTPUT) .long("output") .takes_value(true) - .use_delimiter(true) + .use_value_delimiter(true) .possible_values(OUTPUT_FIELD_LIST) .default_missing_values(&OUTPUT_FIELD_LIST) .default_values(&["source", "size", "used", "avail", "pcent", "target"]) @@ -428,7 +428,7 @@ pub fn uu_app<'a>() -> App<'a> { .long("exclude-type") .allow_invalid_utf8(true) .takes_value(true) - .use_delimiter(true) + .use_value_delimiter(true) .multiple_occurrences(true) .help("limit listing to file systems not of type TYPE"), ) diff --git a/src/uu/dircolors/src/dircolors.rs b/src/uu/dircolors/src/dircolors.rs index dcc832ece..c76dbc0c1 100644 --- a/src/uu/dircolors/src/dircolors.rs +++ b/src/uu/dircolors/src/dircolors.rs @@ -13,7 +13,7 @@ use std::env; use std::fs::File; use std::io::{BufRead, BufReader}; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError, UUsageError}; @@ -154,13 +154,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BOURNE_SHELL) .long("sh") diff --git a/src/uu/dirname/src/dirname.rs b/src/uu/dirname/src/dirname.rs index ad370aacf..030c3981c 100644 --- a/src/uu/dirname/src/dirname.rs +++ b/src/uu/dirname/src/dirname.rs @@ -5,7 +5,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::path::Path; use uucore::display::print_verbatim; use uucore::error::{UResult, UUsageError}; @@ -76,12 +76,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .about(ABOUT) .version(crate_version!()) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ZERO) .long(options::ZERO) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index 0bb1abf4a..8d97b8b47 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -10,7 +10,7 @@ extern crate uucore; use chrono::prelude::DateTime; use chrono::Local; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::collections::HashSet; use std::env; use std::fs; @@ -617,13 +617,13 @@ fn parse_depth(max_depth_str: Option<&str>, summarize: bool) -> UResult() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ALL) .short('a') diff --git a/src/uu/echo/src/echo.rs b/src/uu/echo/src/echo.rs index 54a606c31..d2de30cb1 100644 --- a/src/uu/echo/src/echo.rs +++ b/src/uu/echo/src/echo.rs @@ -6,7 +6,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::io::{self, Write}; use std::iter::Peekable; use std::str::Chars; @@ -126,15 +126,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .map_err_context(|| "could not write to stdout".to_string()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) // TrailingVarArg specifies the final positional argument is a VarArg // and it doesn't attempts the parse any further args. // Final argument must have multiple(true) or the usage string equivalent. - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::AllowHyphenValues) - .setting(AppSettings::InferLongArgs) + .trailing_var_arg(true) + .allow_hyphen_values(true) + .infer_long_args(true) .version(crate_version!()) .about(SUMMARY) .after_help(AFTER_HELP) diff --git a/src/uu/env/src/env.rs b/src/uu/env/src/env.rs index 136100413..b78b5f224 100644 --- a/src/uu/env/src/env.rs +++ b/src/uu/env/src/env.rs @@ -16,13 +16,13 @@ extern crate clap; #[macro_use] extern crate uucore; -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use ini::Ini; use std::borrow::Cow; use std::env; use std::io::{self, Write}; use std::iter::Iterator; -use std::process::Command; +use std::process; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError, UUsageError}; use uucore::format_usage; @@ -121,15 +121,15 @@ fn build_command<'a, 'b>(args: &'a mut Vec<&'b str>) -> (Cow<'b, str>, &'a [&'b (progname, &args[..]) } -pub fn uu_app<'a>() -> App<'a> { - App::new(crate_name!()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(crate_name!()) .version(crate_version!()) .author(crate_authors!()) .about(crate_description!()) .override_usage(format_usage(USAGE)) .after_help(AFTER_HELP) - .setting(AppSettings::AllowExternalSubcommands) - .setting(AppSettings::InferLongArgs) + .allow_external_subcommands(true) + .infer_long_args(true) .arg(Arg::new("ignore-environment") .short('i') .long("ignore-environment") @@ -307,7 +307,7 @@ fn run_env(args: impl uucore::Args) -> UResult<()> { * standard library contains many checks and fail-safes to ensure the process ends up being * created. This is much simpler than dealing with the hassles of calling execvp directly. */ - match Command::new(&*prog).args(args).status() { + match process::Command::new(&*prog).args(args).status() { Ok(exit) if !exit.success() => return Err(exit.code().unwrap().into()), Err(ref err) if err.kind() == io::ErrorKind::NotFound => return Err(127.into()), Err(_) => return Err(126.into()), diff --git a/src/uu/expand/src/expand.rs b/src/uu/expand/src/expand.rs index c2bf98093..b9d9309cd 100644 --- a/src/uu/expand/src/expand.rs +++ b/src/uu/expand/src/expand.rs @@ -12,7 +12,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::fs::File; use std::io::{stdin, stdout, BufRead, BufReader, BufWriter, Read, Write}; use std::str::from_utf8; @@ -176,13 +176,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { expand(&Options::new(&matches)).map_err_context(|| "failed to write output".to_string()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::INITIAL) .long(options::INITIAL) diff --git a/src/uu/expr/src/expr.rs b/src/uu/expr/src/expr.rs index 188537fbc..f202b091c 100644 --- a/src/uu/expr/src/expr.rs +++ b/src/uu/expr/src/expr.rs @@ -5,7 +5,7 @@ //* For the full copyright and license information, please view the LICENSE //* file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::error::{UResult, USimpleError}; use uucore::InvalidEncodingHandling; @@ -19,12 +19,12 @@ static USAGE: &str = r#" expr [EXPRESSION] expr [OPTIONS]"#; -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(USAGE) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(VERSION) .long(VERSION) diff --git a/src/uu/factor/src/cli.rs b/src/uu/factor/src/cli.rs index 90f2fd3c8..f78e410ba 100644 --- a/src/uu/factor/src/cli.rs +++ b/src/uu/factor/src/cli.rs @@ -14,7 +14,7 @@ use std::fmt::Write as FmtWrite; use std::io::{self, stdin, stdout, BufRead, Write}; mod factor; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; pub use factor::*; use uucore::display::Quotable; use uucore::error::UResult; @@ -77,10 +77,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::NUMBER).multiple_occurrences(true)) } diff --git a/src/uu/false/src/false.rs b/src/uu/false/src/false.rs index c6661dc35..687235f70 100644 --- a/src/uu/false/src/false.rs +++ b/src/uu/false/src/false.rs @@ -4,7 +4,7 @@ // * // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use std::io::Write; use uucore::error::{set_exit_code, UResult}; @@ -18,7 +18,7 @@ the program will also return `1`. #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut app = uu_app(); + let mut command = uu_app(); // Mirror GNU options, always return `1`. In particular even the 'successful' cases of no-op, // and the interrupted display of help and version should return `1`. Also, we return Ok in all @@ -26,11 +26,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { // and unwind through the standard library allocation handling machinery. set_exit_code(1); - if let Ok(matches) = app.try_get_matches_from_mut(args) { + if let Ok(matches) = command.try_get_matches_from_mut(args) { let error = if matches.index_of("help").is_some() { - app.print_long_help() + command.print_long_help() } else if matches.index_of("version").is_some() { - writeln!(std::io::stdout(), "{}", app.render_version()) + writeln!(std::io::stdout(), "{}", command.render_version()) } else { Ok(()) }; @@ -45,12 +45,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(clap::crate_version!()) .about(ABOUT) // We provide our own help and version options, to ensure maximum compatibility with GNU. - .setting(AppSettings::DisableHelpFlag | AppSettings::DisableVersionFlag) + .disable_help_flag(true) + .disable_version_flag(true) .arg( Arg::new("help") .long("help") diff --git a/src/uu/fmt/src/fmt.rs b/src/uu/fmt/src/fmt.rs index e53617dac..3cb851674 100644 --- a/src/uu/fmt/src/fmt.rs +++ b/src/uu/fmt/src/fmt.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::cmp; use std::fs::File; use std::io::{stdin, stdout, Write}; @@ -218,12 +218,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_CROWN_MARGIN) .short('c') diff --git a/src/uu/fold/src/fold.rs b/src/uu/fold/src/fold.rs index d217f0bea..d24d31be9 100644 --- a/src/uu/fold/src/fold.rs +++ b/src/uu/fold/src/fold.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDOs) ncount routput -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, BufRead, BufReader, Read}; use std::path::Path; @@ -63,13 +63,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { fold(&files, bytes, spaces, width) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BYTES) .long(options::BYTES) diff --git a/src/uu/groups/src/groups.rs b/src/uu/groups/src/groups.rs index d4015fb50..e1bf99fbc 100644 --- a/src/uu/groups/src/groups.rs +++ b/src/uu/groups/src/groups.rs @@ -26,7 +26,7 @@ use uucore::{ format_usage, }; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; mod options { pub const USERS: &str = "USERNAME"; @@ -102,12 +102,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::USERS) .multiple_occurrences(true) diff --git a/src/uu/hashsum/src/hashsum.rs b/src/uu/hashsum/src/hashsum.rs index d92336702..fbfe1c1f2 100644 --- a/src/uu/hashsum/src/hashsum.rs +++ b/src/uu/hashsum/src/hashsum.rs @@ -20,7 +20,7 @@ mod digest; use self::digest::Digest; use self::digest::DigestWriter; -use clap::{App, AppSettings, Arg, ArgMatches}; +use clap::{Arg, ArgMatches, Command}; use hex::encode; use md5::Md5; use regex::Regex; @@ -297,13 +297,13 @@ pub fn uumain(mut args: impl uucore::Args) -> UResult<()> { // Default binary in Windows, text mode otherwise let binary_flag_default = cfg!(windows); - let app = uu_app(&binary_name); + let command = uu_app(&binary_name); // FIXME: this should use try_get_matches_from() and crash!(), but at the moment that just // causes "error: " to be printed twice (once from crash!() and once from clap). With // the current setup, the name of the utility is not printed, but I think this is at // least somewhat better from a user's perspective. - let matches = app.get_matches_from(args); + let matches = command.get_matches_from(args); let (name, algo, bits) = detect_algo(&binary_name, &matches); @@ -340,7 +340,7 @@ pub fn uumain(mut args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app_common<'a>() -> App<'a> { +pub fn uu_app_common<'a>() -> Command<'a> { #[cfg(windows)] const BINARY_HELP: &str = "read in binary mode (default)"; #[cfg(not(windows))] @@ -349,10 +349,10 @@ pub fn uu_app_common<'a>() -> App<'a> { const TEXT_HELP: &str = "read in text mode"; #[cfg(not(windows))] const TEXT_HELP: &str = "read in text mode (default)"; - App::new(uucore::util_name()) + Command::new(uucore::util_name()) .version(crate_version!()) .about("Compute and check message digests.") - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new("binary") .short('b') @@ -419,8 +419,8 @@ pub fn uu_app_common<'a>() -> App<'a> { ) } -pub fn uu_app_custom<'a>() -> App<'a> { - let mut app = uu_app_common(); +pub fn uu_app_custom<'a>() -> Command<'a> { + let mut command = uu_app_common(); let algorithms = &[ ("md5", "work with MD5"), ("sha1", "work with SHA1"), @@ -446,14 +446,14 @@ pub fn uu_app_custom<'a>() -> App<'a> { ]; for (name, desc) in algorithms { - app = app.arg(Arg::new(*name).long(name).help(*desc)); + command = command.arg(Arg::new(*name).long(name).help(*desc)); } - app + command } // hashsum is handled differently in build.rs, therefore this is not the same // as in other utilities. -fn uu_app<'a>(binary_name: &str) -> App<'a> { +fn uu_app<'a>(binary_name: &str) -> Command<'a> { if !is_custom_binary(binary_name) { uu_app_custom() } else { diff --git a/src/uu/head/src/head.rs b/src/uu/head/src/head.rs index 3bde78ec7..14780aa3c 100644 --- a/src/uu/head/src/head.rs +++ b/src/uu/head/src/head.rs @@ -5,7 +5,7 @@ // spell-checker:ignore (vars) zlines BUFWRITER seekable -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::convert::{TryFrom, TryInto}; use std::ffi::OsString; use std::io::{self, BufWriter, ErrorKind, Read, Seek, SeekFrom, Write}; @@ -41,12 +41,12 @@ mod take; use take::take_all_but; use take::take_lines; -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BYTES_NAME) .short('c') diff --git a/src/uu/hostid/src/hostid.rs b/src/uu/hostid/src/hostid.rs index a82bb5e69..b60446e9f 100644 --- a/src/uu/hostid/src/hostid.rs +++ b/src/uu/hostid/src/hostid.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) gethostid -use clap::{crate_version, App, AppSettings}; +use clap::{crate_version, Command}; use libc::c_long; use uucore::{error::UResult, format_usage}; @@ -26,12 +26,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(SUMMARY) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) } fn hostid() { diff --git a/src/uu/hostname/src/hostname.rs b/src/uu/hostname/src/hostname.rs index b45b4b1d8..757caed02 100644 --- a/src/uu/hostname/src/hostname.rs +++ b/src/uu/hostname/src/hostname.rs @@ -11,7 +11,7 @@ use std::collections::hash_set::HashSet; use std::net::ToSocketAddrs; use std::str; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use uucore::{ error::{FromIo, UResult}, @@ -71,12 +71,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_DOMAIN) .short('d') diff --git a/src/uu/id/src/id.rs b/src/uu/id/src/id.rs index b1da51173..3bb9ce8c9 100644 --- a/src/uu/id/src/id.rs +++ b/src/uu/id/src/id.rs @@ -39,7 +39,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::ffi::CStr; use uucore::display::Quotable; use uucore::entries::{self, Group, Locate, Passwd}; @@ -341,12 +341,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::OPT_AUDIT) .short('A') diff --git a/src/uu/install/src/install.rs b/src/uu/install/src/install.rs index 9b72627fa..28d1aa702 100644 --- a/src/uu/install/src/install.rs +++ b/src/uu/install/src/install.rs @@ -12,7 +12,7 @@ mod mode; #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use file_diff::diff; use filetime::{set_file_times, FileTime}; use uucore::backup_control::{self, BackupMode}; @@ -30,7 +30,7 @@ use std::fs; use std::fs::File; use std::os::unix::fs::MetadataExt; use std::path::{Path, PathBuf}; -use std::process::Command; +use std::process; const DEFAULT_MODE: u32 = 0o755; const DEFAULT_STRIP_PROGRAM: &str = "strip"; @@ -188,12 +188,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( backup_control::arguments::backup() ) @@ -585,7 +585,7 @@ fn copy(from: &Path, to: &Path, b: &Behavior) -> UResult<()> { } if b.strip && cfg!(not(windows)) { - match Command::new(&b.strip_program).arg(to).output() { + match process::Command::new(&b.strip_program).arg(to).output() { Ok(o) => { if !o.status.success() { return Err(InstallError::StripProgramFailed( diff --git a/src/uu/join/src/join.rs b/src/uu/join/src/join.rs index e5abefba4..1d306415b 100644 --- a/src/uu/join/src/join.rs +++ b/src/uu/join/src/join.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use memchr::{memchr3_iter, memchr_iter}; use std::cmp::Ordering; use std::convert::From; @@ -697,8 +697,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(NAME) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(NAME) .version(crate_version!()) .about( "For each pair of input lines with identical join fields, write a line to @@ -706,7 +706,7 @@ standard output. The default join field is the first, delimited by blanks. When FILE1 or FILE2 (not both) is -, read standard input.", ) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new("a") .short('a') diff --git a/src/uu/kill/src/kill.rs b/src/uu/kill/src/kill.rs index 2d0490921..df868e418 100644 --- a/src/uu/kill/src/kill.rs +++ b/src/uu/kill/src/kill.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use libc::{c_int, pid_t}; use std::io::Error; use uucore::display::Quotable; @@ -78,12 +78,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::LIST) .short('l') diff --git a/src/uu/link/src/link.rs b/src/uu/link/src/link.rs index 9d515ee8a..3c959af33 100644 --- a/src/uu/link/src/link.rs +++ b/src/uu/link/src/link.rs @@ -4,7 +4,7 @@ // * // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::hard_link; use std::path::Path; use uucore::display::Quotable; @@ -33,12 +33,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .map_err_context(|| format!("cannot create link {} to {}", new.quote(), old.quote())) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILES) .hide(true) diff --git a/src/uu/ln/src/ln.rs b/src/uu/ln/src/ln.rs index ec4868876..2fc478a23 100644 --- a/src/uu/ln/src/ln.rs +++ b/src/uu/ln/src/ln.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::display::Quotable; use uucore::error::{UError, UResult}; use uucore::format_usage; @@ -173,12 +173,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { exec(&paths[..], &settings) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(backup_control::arguments::backup()) .arg(backup_control::arguments::backup_no_args()) // TODO: opts.arg( diff --git a/src/uu/logname/src/logname.rs b/src/uu/logname/src/logname.rs index 64ad5e9bc..31246b5c7 100644 --- a/src/uu/logname/src/logname.rs +++ b/src/uu/logname/src/logname.rs @@ -12,7 +12,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings}; +use clap::{crate_version, Command}; use std::ffi::CStr; use uucore::error::UResult; use uucore::InvalidEncodingHandling; @@ -51,10 +51,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .override_usage(uucore::execution_phrase()) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) } diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 9353d1f6b..a7dbc7b42 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -15,7 +15,7 @@ extern crate lazy_static; mod quoting_style; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use glob::Pattern; use lscolors::LsColors; use number_prefix::NumberPrefix; @@ -782,9 +782,9 @@ impl Config { #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let app = uu_app(); + let command = uu_app(); - let matches = app.get_matches_from(args); + let matches = command.get_matches_from(args); let config = Config::from(&matches)?; @@ -796,8 +796,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { list(locs, &config) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about( @@ -805,7 +805,7 @@ pub fn uu_app<'a>() -> App<'a> { the command line, expect that it will ignore files and directories \ whose names start with '.'.", ) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) // Format arguments .arg( Arg::new(options::FORMAT) diff --git a/src/uu/mkdir/src/mkdir.rs b/src/uu/mkdir/src/mkdir.rs index 14b1ebaf5..ed487bb58 100644 --- a/src/uu/mkdir/src/mkdir.rs +++ b/src/uu/mkdir/src/mkdir.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches, OsValues}; +use clap::{crate_version, Arg, ArgMatches, Command, OsValues}; use std::path::Path; use uucore::display::Quotable; #[cfg(not(windows))] @@ -104,12 +104,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::MODE) .short('m') diff --git a/src/uu/mkfifo/src/mkfifo.rs b/src/uu/mkfifo/src/mkfifo.rs index 2ac316f9d..756fd75cf 100644 --- a/src/uu/mkfifo/src/mkfifo.rs +++ b/src/uu/mkfifo/src/mkfifo.rs @@ -8,7 +8,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use libc::mkfifo; use std::ffi::CString; use uucore::error::{UResult, USimpleError}; @@ -70,13 +70,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::MODE) .short('m') diff --git a/src/uu/mknod/src/mknod.rs b/src/uu/mknod/src/mknod.rs index a27a48056..0e7c4be45 100644 --- a/src/uu/mknod/src/mknod.rs +++ b/src/uu/mknod/src/mknod.rs @@ -9,7 +9,7 @@ use std::ffi::CString; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use libc::{dev_t, mode_t}; use libc::{S_IFBLK, S_IFCHR, S_IFIFO, S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWOTH, S_IWUSR}; @@ -143,13 +143,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .override_usage(format_usage(USAGE)) .after_help(LONG_HELP) .about(ABOUT) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new("mode") .short('m') diff --git a/src/uu/mktemp/src/mktemp.rs b/src/uu/mktemp/src/mktemp.rs index 54d3ac651..54283b9af 100644 --- a/src/uu/mktemp/src/mktemp.rs +++ b/src/uu/mktemp/src/mktemp.rs @@ -8,7 +8,7 @@ // spell-checker:ignore (paths) GPGHome -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::display::{println_verbatim, Quotable}; use uucore::error::{FromIo, UError, UResult}; use uucore::format_usage; @@ -131,12 +131,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_DIRECTORY) .short('d') diff --git a/src/uu/more/src/more.rs b/src/uu/more/src/more.rs index db6ad249b..ab94bd435 100644 --- a/src/uu/more/src/more.rs +++ b/src/uu/more/src/more.rs @@ -17,7 +17,7 @@ use std::{ #[cfg(all(unix, not(target_os = "fuchsia")))] extern crate nix; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use crossterm::{ event::{self, Event, KeyCode, KeyEvent, KeyModifiers}, execute, queue, @@ -96,11 +96,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .about("A file perusal filter for CRT viewing.") .version(crate_version!()) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::SILENT) .short('d') diff --git a/src/uu/mv/src/mv.rs b/src/uu/mv/src/mv.rs index c02f70dbd..60cff5dfb 100644 --- a/src/uu/mv/src/mv.rs +++ b/src/uu/mv/src/mv.rs @@ -13,7 +13,7 @@ mod error; #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::env; use std::ffi::OsString; use std::fs; @@ -112,12 +112,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { exec(&files[..], &behavior) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( backup_control::arguments::backup() ) diff --git a/src/uu/nice/src/nice.rs b/src/uu/nice/src/nice.rs index 94ccbe61e..b75dd979e 100644 --- a/src/uu/nice/src/nice.rs +++ b/src/uu/nice/src/nice.rs @@ -15,7 +15,7 @@ use std::ffi::CString; use std::io::Error; use std::ptr; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::{ error::{set_exit_code, UResult, USimpleError, UUsageError}, format_usage, @@ -102,12 +102,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::InferLongArgs) + .trailing_var_arg(true) + .infer_long_args(true) .version(crate_version!()) .arg( Arg::new(options::ADJUSTMENT) diff --git a/src/uu/nl/src/nl.rs b/src/uu/nl/src/nl.rs index c1661178f..09ad9a816 100644 --- a/src/uu/nl/src/nl.rs +++ b/src/uu/nl/src/nl.rs @@ -8,7 +8,7 @@ // spell-checker:ignore (ToDO) corasick memchr -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, BufRead, BufReader, Read}; use std::iter::repeat; @@ -139,12 +139,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE) .hide(true) diff --git a/src/uu/nohup/src/nohup.rs b/src/uu/nohup/src/nohup.rs index c7c7350cc..c2593f8ea 100644 --- a/src/uu/nohup/src/nohup.rs +++ b/src/uu/nohup/src/nohup.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use libc::{c_char, dup2, execvp, signal}; use libc::{SIGHUP, SIG_IGN}; use std::env; @@ -116,8 +116,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) @@ -128,8 +128,8 @@ pub fn uu_app<'a>() -> App<'a> { .required(true) .multiple_occurrences(true), ) - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::InferLongArgs) + .trailing_var_arg(true) + .infer_long_args(true) } fn replace_fds() -> UResult<()> { diff --git a/src/uu/nproc/src/nproc.rs b/src/uu/nproc/src/nproc.rs index f10b41e40..fdebea65a 100644 --- a/src/uu/nproc/src/nproc.rs +++ b/src/uu/nproc/src/nproc.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) NPROCESSORS nprocs numstr threadstr sysconf -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::env; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; @@ -68,12 +68,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_ALL) .long(OPT_ALL) diff --git a/src/uu/numfmt/src/numfmt.rs b/src/uu/numfmt/src/numfmt.rs index 516d7a4df..1b3ab3950 100644 --- a/src/uu/numfmt/src/numfmt.rs +++ b/src/uu/numfmt/src/numfmt.rs @@ -11,7 +11,7 @@ use crate::errors::*; use crate::format::format_and_print; use crate::options::*; use crate::units::{Result, Unit}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::io::{BufRead, Write}; use uucore::display::Quotable; use uucore::error::UResult; @@ -186,14 +186,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::AllowNegativeNumbers) - .setting(AppSettings::InferLongArgs) + .allow_negative_numbers(true) + .infer_long_args(true) .arg( Arg::new(options::DELIMITER) .short('d') diff --git a/src/uu/od/src/od.rs b/src/uu/od/src/od.rs index 3bbe3ab5d..eeca0171a 100644 --- a/src/uu/od/src/od.rs +++ b/src/uu/od/src/od.rs @@ -5,7 +5,7 @@ // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -// spell-checker:ignore (clap) DontDelimitTrailingValues +// spell-checker:ignore (clap) dont // spell-checker:ignore (ToDO) formatteriteminfo inputdecoder inputoffset mockstream nrofbytes partialreader odfunc multifile exitcode #[macro_use] @@ -43,7 +43,7 @@ use crate::parse_nrofbytes::parse_number_of_bytes; use crate::partialreader::*; use crate::peekreader::*; use crate::prn_char::format_ascii_dump; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, AppSettings, Arg, ArgMatches, Command}; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; use uucore::format_usage; @@ -289,18 +289,16 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { odfunc(&mut input_offset, &mut input_decoder, &output_info) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) .after_help(LONG_HELP) - .setting( - AppSettings::TrailingVarArg | - AppSettings::DontDelimitTrailingValues | - AppSettings::DeriveDisplayOrder | - AppSettings::InferLongArgs - ) + .trailing_var_arg(true) + .dont_delimit_trailing_values(true) + .infer_long_args(true) + .setting(AppSettings::DeriveDisplayOrder) .arg( Arg::new(options::ADDRESS_RADIX) .short('A') diff --git a/src/uu/paste/src/paste.rs b/src/uu/paste/src/paste.rs index dc93ae625..2826a19e3 100644 --- a/src/uu/paste/src/paste.rs +++ b/src/uu/paste/src/paste.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) delim -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, stdout, BufRead, BufReader, Read, Write}; use std::path::Path; @@ -47,11 +47,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { paste(files, serial, delimiters) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::SERIAL) .long(options::SERIAL) diff --git a/src/uu/pathchk/src/pathchk.rs b/src/uu/pathchk/src/pathchk.rs index 2d72d4a5a..6260590aa 100644 --- a/src/uu/pathchk/src/pathchk.rs +++ b/src/uu/pathchk/src/pathchk.rs @@ -8,7 +8,7 @@ // * that was distributed with this source code. // spell-checker:ignore (ToDO) lstat -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs; use std::io::{ErrorKind, Write}; use uucore::display::Quotable; @@ -84,12 +84,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::POSIX) .short('p') diff --git a/src/uu/pinky/src/pinky.rs b/src/uu/pinky/src/pinky.rs index 02ad09d20..b5ad2c5c9 100644 --- a/src/uu/pinky/src/pinky.rs +++ b/src/uu/pinky/src/pinky.rs @@ -18,7 +18,7 @@ use std::io::BufReader; use std::fs::File; use std::os::unix::fs::MetadataExt; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::path::PathBuf; use uucore::{format_usage, InvalidEncodingHandling}; @@ -123,12 +123,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::LONG_FORMAT) .short('l') diff --git a/src/uu/pr/src/pr.rs b/src/uu/pr/src/pr.rs index 79baf72c9..e18d29730 100644 --- a/src/uu/pr/src/pr.rs +++ b/src/uu/pr/src/pr.rs @@ -11,7 +11,7 @@ extern crate quick_error; use chrono::offset::Local; use chrono::DateTime; -use clap::{App, AppSettings, Arg, ArgMatches}; +use clap::{AppSettings, Arg, ArgMatches, Command}; use itertools::Itertools; use quick_error::ResultExt; use regex::Regex; @@ -192,13 +192,13 @@ quick_error! { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(VERSION) .about(ABOUT) .after_help(AFTER_HELP) - .setting(AppSettings::InferLongArgs) - .setting(AppSettings::AllArgsOverrideSelf) + .infer_long_args(true) + .args_override_self(true) .setting(AppSettings::NoAutoHelp) .setting(AppSettings::NoAutoVersion) .arg( @@ -383,8 +383,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let opt_args = recreate_arguments(&args); - let mut app = uu_app(); - let matches = match app.try_get_matches_from_mut(opt_args) { + let mut command = uu_app(); + let matches = match command.try_get_matches_from_mut(opt_args) { Ok(m) => m, Err(e) => { e.print()?; @@ -394,12 +394,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { }; if matches.is_present(options::VERSION) { - println!("{}", app.render_long_version()); + println!("{}", command.render_long_version()); return Ok(()); } if matches.is_present(options::HELP) { - app.print_long_help()?; + command.print_long_help()?; return Ok(()); } diff --git a/src/uu/printenv/src/printenv.rs b/src/uu/printenv/src/printenv.rs index cb24299cc..c5832c4df 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, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::env; use uucore::{error::UResult, format_usage}; @@ -56,12 +56,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_NULL) .short('0') diff --git a/src/uu/printf/src/printf.rs b/src/uu/printf/src/printf.rs index 2dbc7f996..662db1ed5 100644 --- a/src/uu/printf/src/printf.rs +++ b/src/uu/printf/src/printf.rs @@ -2,7 +2,7 @@ // spell-checker:ignore (change!) each's // spell-checker:ignore (ToDO) LONGHELP FORMATSTRING templating parameterizing formatstr -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::error::{UResult, UUsageError}; use uucore::InvalidEncodingHandling; use uucore::{format_usage, memo}; @@ -288,9 +288,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) - .setting(AppSettings::AllowHyphenValues) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) + .allow_hyphen_values(true) .version(crate_version!()) .about(ABOUT) .after_help(AFTER_HELP) diff --git a/src/uu/ptx/src/ptx.rs b/src/uu/ptx/src/ptx.rs index 20a2b13f2..9c3aee133 100644 --- a/src/uu/ptx/src/ptx.rs +++ b/src/uu/ptx/src/ptx.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDOs) corasick memchr Roff trunc oset iset -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use regex::Regex; use std::cmp; use std::collections::{BTreeSet, HashMap, HashSet}; @@ -702,13 +702,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { write_traditional_output(&config, &file_map, &word_set, &output_file) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .about(ABOUT) .version(crate_version!()) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE) .hide(true) diff --git a/src/uu/pwd/src/pwd.rs b/src/uu/pwd/src/pwd.rs index 28487545c..67462ac16 100644 --- a/src/uu/pwd/src/pwd.rs +++ b/src/uu/pwd/src/pwd.rs @@ -5,7 +5,7 @@ // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::env; use std::io; use std::path::PathBuf; @@ -148,12 +148,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_LOGICAL) .short('L') diff --git a/src/uu/readlink/src/readlink.rs b/src/uu/readlink/src/readlink.rs index adbae7a27..ba1e368f2 100644 --- a/src/uu/readlink/src/readlink.rs +++ b/src/uu/readlink/src/readlink.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs; use std::io::{stdout, Write}; use std::path::{Path, PathBuf}; @@ -95,12 +95,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_help(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_CANONICALIZE) .short('f') diff --git a/src/uu/realpath/src/realpath.rs b/src/uu/realpath/src/realpath.rs index 4a42930f3..bea89c19e 100644 --- a/src/uu/realpath/src/realpath.rs +++ b/src/uu/realpath/src/realpath.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::{ io::{stdout, Write}, path::{Path, PathBuf}, @@ -70,12 +70,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_QUIET) .short('q') diff --git a/src/uu/relpath/src/relpath.rs b/src/uu/relpath/src/relpath.rs index a7da7a956..2e45ce927 100644 --- a/src/uu/relpath/src/relpath.rs +++ b/src/uu/relpath/src/relpath.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) subpath absto absfrom absbase -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::env; use std::path::{Path, PathBuf}; use uucore::display::println_verbatim; @@ -78,12 +78,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { println_verbatim(result).map_err_context(String::new) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::DIR).short('d').takes_value(true).help( "If any of FROM and TO is not subpath of DIR, output absolute path instead of relative", )) diff --git a/src/uu/rm/src/rm.rs b/src/uu/rm/src/rm.rs index 9179c6d9f..a1924b41d 100644 --- a/src/uu/rm/src/rm.rs +++ b/src/uu/rm/src/rm.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use remove_dir_all::remove_dir_all; use std::collections::VecDeque; use std::fs; @@ -139,12 +139,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_FORCE) .short('f') diff --git a/src/uu/rmdir/src/rmdir.rs b/src/uu/rmdir/src/rmdir.rs index bdb6ab60d..127b8fcf9 100644 --- a/src/uu/rmdir/src/rmdir.rs +++ b/src/uu/rmdir/src/rmdir.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::{read_dir, remove_dir}; use std::io; use std::path::Path; @@ -170,12 +170,12 @@ struct Opts { verbose: bool, } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_IGNORE_FAIL_NON_EMPTY) .long(OPT_IGNORE_FAIL_NON_EMPTY) diff --git a/src/uu/runcon/src/runcon.rs b/src/uu/runcon/src/runcon.rs index 55186d218..8c20319be 100644 --- a/src/uu/runcon/src/runcon.rs +++ b/src/uu/runcon/src/runcon.rs @@ -2,7 +2,7 @@ use uucore::error::{UResult, UUsageError}; -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use selinux::{OpaqueSecurityContext, SecurityClass, SecurityContext}; use uucore::format_usage; @@ -48,7 +48,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(r) => r, Err(r) => { if let Error::CommandLine(ref r) = r { - match r.kind { + match r.kind() { clap::ErrorKind::DisplayHelp | clap::ErrorKind::DisplayVersion => { println!("{}", r); return Ok(()); @@ -103,13 +103,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(VERSION) .about(ABOUT) .after_help(DESCRIPTION) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::COMPUTE) .short('c') @@ -162,7 +162,7 @@ pub fn uu_app<'a>() -> App<'a> { // // This is not how POSIX does things, but this is how the GNU implementation // parses its command line. - .setting(clap::AppSettings::TrailingVarArg) + .trailing_var_arg(true) } #[derive(Debug)] @@ -205,7 +205,7 @@ struct Options { arguments: Vec, } -fn parse_command_line(config: App, args: impl uucore::Args) -> Result { +fn parse_command_line(config: Command, args: impl uucore::Args) -> Result { let matches = config.try_get_matches_from(args)?; let compute_transition_context = matches.is_present(options::COMPUTE); diff --git a/src/uu/seq/src/seq.rs b/src/uu/seq/src/seq.rs index 788583a72..851857ea1 100644 --- a/src/uu/seq/src/seq.rs +++ b/src/uu/seq/src/seq.rs @@ -7,7 +7,7 @@ use std::io::{stdout, ErrorKind, Write}; use std::process::exit; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use num_traits::Zero; use uucore::error::FromIo; @@ -141,11 +141,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::AllowNegativeNumbers) - .setting(AppSettings::InferLongArgs) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) + .trailing_var_arg(true) + .allow_negative_numbers(true) + .infer_long_args(true) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) diff --git a/src/uu/shred/src/shred.rs b/src/uu/shred/src/shred.rs index 5c545e8e7..05c8d1805 100644 --- a/src/uu/shred/src/shred.rs +++ b/src/uu/shred/src/shred.rs @@ -8,7 +8,7 @@ // spell-checker:ignore (words) writeback wipesync -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use rand::prelude::SliceRandom; use rand::Rng; use std::cell::{Cell, RefCell}; @@ -314,13 +314,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(AFTER_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FORCE) .long(options::FORCE) diff --git a/src/uu/shuf/src/shuf.rs b/src/uu/shuf/src/shuf.rs index c331d7867..6a3e325c7 100644 --- a/src/uu/shuf/src/shuf.rs +++ b/src/uu/shuf/src/shuf.rs @@ -7,7 +7,7 @@ // spell-checker:ignore (ToDO) cmdline evec seps rvec fdata -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use rand::prelude::SliceRandom; use rand::RngCore; use std::fs::File; @@ -119,13 +119,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .about(ABOUT) .version(crate_version!()) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ECHO) .short('e') @@ -134,7 +134,7 @@ pub fn uu_app<'a>() -> App<'a> { .value_name("ARG") .help("treat each ARG as an input line") .multiple_occurrences(true) - .use_delimiter(false) + .use_value_delimiter(false) .min_values(0) .conflicts_with(options::INPUT_RANGE), ) diff --git a/src/uu/sleep/src/sleep.rs b/src/uu/sleep/src/sleep.rs index 0c8de143e..2ac6275a6 100644 --- a/src/uu/sleep/src/sleep.rs +++ b/src/uu/sleep/src/sleep.rs @@ -13,7 +13,7 @@ use uucore::{ format_usage, }; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; static ABOUT: &str = "Pause for NUMBER seconds."; const USAGE: &str = "\ @@ -41,13 +41,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::NUMBER) .help("pause for NUMBER seconds") diff --git a/src/uu/sort/src/sort.rs b/src/uu/sort/src/sort.rs index 1c118b15a..70cebad4f 100644 --- a/src/uu/sort/src/sort.rs +++ b/src/uu/sort/src/sort.rs @@ -25,7 +25,7 @@ mod numeric_str_cmp; mod tmp_dir; use chunks::LineData; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use custom_str_cmp::custom_str_cmp; use ext_sort::ext_sort; use fnv::FnvHasher; @@ -1268,12 +1268,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { exec(&mut files, &settings, output, &mut tmp_dir) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::modes::SORT) .long(options::modes::SORT) diff --git a/src/uu/split/src/split.rs b/src/uu/split/src/split.rs index fb8c44dcb..6cb7c629a 100644 --- a/src/uu/split/src/split.rs +++ b/src/uu/split/src/split.rs @@ -13,7 +13,7 @@ mod platform; use crate::filenames::FilenameIterator; use crate::filenames::SuffixType; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::convert::TryInto; use std::env; use std::fmt; @@ -62,13 +62,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about("Create output files containing consecutive or interleaved sections of input") .after_help(AFTER_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) // strategy (mutually exclusive) .arg( Arg::new(OPT_BYTES) diff --git a/src/uu/stat/src/stat.rs b/src/uu/stat/src/stat.rs index 569c94d96..7d1073020 100644 --- a/src/uu/stat/src/stat.rs +++ b/src/uu/stat/src/stat.rs @@ -16,7 +16,7 @@ use uucore::fsext::{ use uucore::libc::mode_t; use uucore::{entries, format_usage}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::borrow::Cow; use std::convert::AsRef; use std::os::unix::fs::{FileTypeExt, MetadataExt}; @@ -967,12 +967,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::DEREFERENCE) .short('L') diff --git a/src/uu/stdbuf/src/stdbuf.rs b/src/uu/stdbuf/src/stdbuf.rs index 8bd28b626..2eedb038b 100644 --- a/src/uu/stdbuf/src/stdbuf.rs +++ b/src/uu/stdbuf/src/stdbuf.rs @@ -10,13 +10,13 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::convert::{TryFrom, TryInto}; use std::fs::File; use std::io::{self, Write}; use std::os::unix::process::ExitStatusExt; use std::path::PathBuf; -use std::process::Command; +use std::process; use tempfile::tempdir; use tempfile::TempDir; use uucore::error::{FromIo, UResult, USimpleError, UUsageError}; @@ -131,7 +131,7 @@ fn check_option(matches: &ArgMatches, name: &str) -> Result { command.env(buffer_name, m.to_string()); @@ -164,7 +164,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let options = ProgramOptions::try_from(&matches).map_err(|e| UUsageError::new(125, e.0))?; let mut command_values = matches.values_of::<&str>(options::COMMAND).unwrap(); - let mut command = Command::new(command_values.next().unwrap()); + let mut command = process::Command::new(command_values.next().unwrap()); let command_params: Vec<&str> = command_values.collect(); let mut tmp_dir = tempdir().unwrap(); @@ -194,14 +194,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .after_help(LONG_HELP) .override_usage(format_usage(USAGE)) - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::InferLongArgs) + .trailing_var_arg(true) + .infer_long_args(true) .arg( Arg::new(options::INPUT) .long(options::INPUT) diff --git a/src/uu/sum/src/sum.rs b/src/uu/sum/src/sum.rs index 4dacf61cb..501635910 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, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, Read}; use std::path::Path; @@ -140,13 +140,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE) .multiple_occurrences(true) diff --git a/src/uu/sync/src/sync.rs b/src/uu/sync/src/sync.rs index 773e49479..f9c18d500 100644 --- a/src/uu/sync/src/sync.rs +++ b/src/uu/sync/src/sync.rs @@ -9,7 +9,7 @@ extern crate libc; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::path::Path; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; @@ -190,12 +190,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::FILE_SYSTEM) .short('f') diff --git a/src/uu/tac/src/tac.rs b/src/uu/tac/src/tac.rs index 925968f74..3151b97e2 100644 --- a/src/uu/tac/src/tac.rs +++ b/src/uu/tac/src/tac.rs @@ -8,7 +8,7 @@ // spell-checker:ignore (ToDO) sbytes slen dlen memmem memmap Mmap mmap SIGBUS mod error; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use memchr::memmem; use memmap2::Mmap; use std::io::{stdin, stdout, BufWriter, Read, Write}; @@ -60,13 +60,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { tac(&files, before, regex, separator) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BEFORE) .short('b') diff --git a/src/uu/tail/src/tail.rs b/src/uu/tail/src/tail.rs index 27153117c..bbbc9810d 100644 --- a/src/uu/tail/src/tail.rs +++ b/src/uu/tail/src/tail.rs @@ -20,7 +20,7 @@ mod parse; mod platform; use chunks::ReverseChunks; -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use std::collections::VecDeque; use std::convert::TryInto; use std::ffi::OsString; @@ -275,12 +275,12 @@ fn arg_iterate<'a>( } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BYTES) .short('c') diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index a1ba6b201..d9c2e78f1 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -8,7 +8,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use retain_mut::RetainMut; use std::fs::OpenOptions; use std::io::{copy, sink, stdin, stdout, Error, ErrorKind, Read, Result, Write}; @@ -55,13 +55,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) .after_help("If a FILE is -, it refers to a file named - .") - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::APPEND) .long(options::APPEND) diff --git a/src/uu/test/src/test.rs b/src/uu/test/src/test.rs index f91aaf8ea..e53ba4db1 100644 --- a/src/uu/test/src/test.rs +++ b/src/uu/test/src/test.rs @@ -10,7 +10,7 @@ mod parser; -use clap::{crate_version, App}; +use clap::{crate_version, Command}; use parser::{parse, Operator, Symbol, UnaryOperator}; use std::ffi::{OsStr, OsString}; use uucore::display::Quotable; @@ -90,8 +90,8 @@ for details about the options it supports."; const ABOUT: &str = "Check file types and compare values."; -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) @@ -108,7 +108,7 @@ pub fn uumain(mut args: impl uucore::Args) -> UResult<()> { // If invoked as [ we should recognize --help and --version (but not -h or -v) if args.len() == 1 && (args[0] == "--help" || args[0] == "--version") { // Let clap pretty-print help and version - App::new(binary_name) + Command::new(binary_name) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) diff --git a/src/uu/timeout/src/timeout.rs b/src/uu/timeout/src/timeout.rs index 3da0bcd2a..192892d4f 100644 --- a/src/uu/timeout/src/timeout.rs +++ b/src/uu/timeout/src/timeout.rs @@ -14,9 +14,9 @@ extern crate uucore; extern crate clap; use crate::status::ExitStatus; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::io::ErrorKind; -use std::process::{Child, Command, Stdio}; +use std::process::{self, Child, Stdio}; use std::time::Duration; use uucore::display::Quotable; use uucore::error::{UResult, USimpleError}; @@ -103,9 +103,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .collect_str(InvalidEncodingHandling::ConvertLossy) .accept_any(); - let app = uu_app(); + let command = uu_app(); - let matches = app.get_matches_from(args); + let matches = command.get_matches_from(args); let config = Config::from(&matches)?; timeout( @@ -119,8 +119,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { ) } -pub fn uu_app<'a>() -> App<'a> { - App::new("timeout") +pub fn uu_app<'a>() -> Command<'a> { + Command::new("timeout") .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) @@ -162,8 +162,8 @@ pub fn uu_app<'a>() -> App<'a> { .required(true) .multiple_occurrences(true) ) - .setting(AppSettings::TrailingVarArg) - .setting(AppSettings::InferLongArgs) + .trailing_var_arg(true) + .infer_long_args(true) } /// Remove pre-existing SIGCHLD handlers that would make waiting for the child's exit code fail. @@ -245,7 +245,7 @@ fn timeout( if !foreground { unsafe { libc::setpgid(0, 0) }; } - let mut process = Command::new(&cmd[0]) + let mut process = process::Command::new(&cmd[0]) .args(&cmd[1..]) .stdin(Stdio::inherit()) .stdout(Stdio::inherit()) diff --git a/src/uu/touch/src/touch.rs b/src/uu/touch/src/touch.rs index 2b56cdb95..220a8476e 100644 --- a/src/uu/touch/src/touch.rs +++ b/src/uu/touch/src/touch.rs @@ -13,7 +13,7 @@ pub extern crate filetime; #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg, ArgGroup}; +use clap::{crate_version, Arg, ArgGroup, Command}; use filetime::*; use std::fs::{self, File}; use std::path::{Path, PathBuf}; @@ -149,12 +149,12 @@ Try 'touch --help' for more information."##, Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ACCESS) .short('a') diff --git a/src/uu/tr/src/tr.rs b/src/uu/tr/src/tr.rs index a92a7308a..dd8edc518 100644 --- a/src/uu/tr/src/tr.rs +++ b/src/uu/tr/src/tr.rs @@ -11,7 +11,7 @@ mod convert; mod operation; mod unicode_table; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use nom::AsBytes; use operation::{translate_input, Sequence, SqueezeOperation, TranslateOperation}; use std::io::{stdin, stdout, BufReader, BufWriter}; @@ -137,13 +137,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) + .infer_long_args(true) .arg( Arg::new(options::COMPLEMENT) .visible_short_alias('C') diff --git a/src/uu/true/src/true.rs b/src/uu/true/src/true.rs index 4a8452db6..57c3d2af5 100644 --- a/src/uu/true/src/true.rs +++ b/src/uu/true/src/true.rs @@ -4,7 +4,7 @@ // * // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use std::io::Write; use uucore::error::{set_exit_code, UResult}; @@ -18,13 +18,13 @@ operation causes the program to return `1` instead. #[uucore::main] pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let mut app = uu_app(); + let mut command = uu_app(); - if let Ok(matches) = app.try_get_matches_from_mut(args) { + if let Ok(matches) = command.try_get_matches_from_mut(args) { let error = if matches.index_of("help").is_some() { - app.print_long_help() + command.print_long_help() } else if matches.index_of("version").is_some() { - writeln!(std::io::stdout(), "{}", app.render_version()) + writeln!(std::io::stdout(), "{}", command.render_version()) } else { Ok(()) }; @@ -42,12 +42,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(clap::crate_version!()) .about(ABOUT) // We provide our own help and version options, to ensure maximum compatibility with GNU. - .setting(AppSettings::DisableHelpFlag | AppSettings::DisableVersionFlag) + .disable_help_flag(true) + .disable_version_flag(true) .arg( Arg::new("help") .long("help") diff --git a/src/uu/truncate/src/truncate.rs b/src/uu/truncate/src/truncate.rs index b88040fb8..6c9d8197b 100644 --- a/src/uu/truncate/src/truncate.rs +++ b/src/uu/truncate/src/truncate.rs @@ -6,7 +6,7 @@ // * file that was distributed with this source code. // spell-checker:ignore (ToDO) RFILE refsize rfilename fsize tsize -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::{metadata, OpenOptions}; use std::io::ErrorKind; #[cfg(unix)] @@ -115,7 +115,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .try_get_matches_from(args) .map_err(|e| { e.print().expect("Error writing clap::Error"); - match e.kind { + match e.kind() { clap::ErrorKind::DisplayHelp | clap::ErrorKind::DisplayVersion => 0, _ => 1, } @@ -137,12 +137,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::IO_BLOCKS) .short('o') diff --git a/src/uu/tsort/src/tsort.rs b/src/uu/tsort/src/tsort.rs index 61cb95256..aecd492fe 100644 --- a/src/uu/tsort/src/tsort.rs +++ b/src/uu/tsort/src/tsort.rs @@ -5,7 +5,7 @@ // * // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::collections::{HashMap, HashSet}; use std::fs::File; use std::io::{stdin, BufRead, BufReader, Read}; @@ -93,12 +93,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::FILE).default_value("-").hide(true)) } diff --git a/src/uu/tty/src/tty.rs b/src/uu/tty/src/tty.rs index e3d13b67d..b13b61784 100644 --- a/src/uu/tty/src/tty.rs +++ b/src/uu/tty/src/tty.rs @@ -9,7 +9,7 @@ // spell-checker:ignore (ToDO) ttyname filedesc -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::ffi::CStr; use std::io::Write; use uucore::error::{UResult, UUsageError}; @@ -66,12 +66,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::SILENT) .long(options::SILENT) diff --git a/src/uu/uname/src/uname.rs b/src/uu/uname/src/uname.rs index c5c2b8801..bff033047 100644 --- a/src/uu/uname/src/uname.rs +++ b/src/uu/uname/src/uname.rs @@ -10,7 +10,7 @@ // spell-checker:ignore (ToDO) nodename kernelname kernelrelease kernelversion sysname hwplatform mnrsv -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use platform_info::*; use uucore::{ error::{FromIo, UResult}, @@ -121,12 +121,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::ALL) .short('a') .long(options::ALL) diff --git a/src/uu/unexpand/src/unexpand.rs b/src/uu/unexpand/src/unexpand.rs index 55bd51ad1..910ff91d3 100644 --- a/src/uu/unexpand/src/unexpand.rs +++ b/src/uu/unexpand/src/unexpand.rs @@ -11,7 +11,7 @@ #[macro_use] extern crate uucore; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::fs::File; use std::io::{stdin, stdout, BufRead, BufReader, BufWriter, Read, Stdout, Write}; use std::str::from_utf8; @@ -102,13 +102,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { unexpand(&Options::new(&matches)).map_err_context(String::new) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .name(NAME) .version(crate_version!()) .override_usage(format_usage(USAGE)) .about(SUMMARY) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(options::FILE).hide(true).multiple_occurrences(true)) .arg( Arg::new(options::ALL) diff --git a/src/uu/uniq/src/uniq.rs b/src/uu/uniq/src/uniq.rs index a22db42a9..020de0230 100644 --- a/src/uu/uniq/src/uniq.rs +++ b/src/uu/uniq/src/uniq.rs @@ -5,7 +5,7 @@ // * For the full copyright and license information, please view the LICENSE // * file that was distributed with this source code. -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::fs::File; use std::io::{self, stdin, stdout, BufRead, BufReader, BufWriter, Read, Write}; use std::path::Path; @@ -290,12 +290,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { ) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ALL_REPEATED) .short('D') diff --git a/src/uu/unlink/src/unlink.rs b/src/uu/unlink/src/unlink.rs index 65544612b..fc72b4623 100644 --- a/src/uu/unlink/src/unlink.rs +++ b/src/uu/unlink/src/unlink.rs @@ -10,7 +10,7 @@ use std::fs::remove_file; use std::path::Path; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::display::Quotable; use uucore::error::{FromIo, UResult}; @@ -27,11 +27,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { remove_file(path).map_err_context(|| format!("cannot unlink {}", path.quote())) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(OPT_PATH) .required(true) diff --git a/src/uu/uptime/src/uptime.rs b/src/uu/uptime/src/uptime.rs index ac9ba6d15..a93344dbc 100644 --- a/src/uu/uptime/src/uptime.rs +++ b/src/uu/uptime/src/uptime.rs @@ -9,7 +9,7 @@ // spell-checker:ignore (ToDO) getloadavg upsecs updays nusers loadavg boottime uphours upmins use chrono::{Local, TimeZone, Utc}; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::format_usage; // import crate time from utmpx @@ -59,12 +59,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::SINCE) .short('s') diff --git a/src/uu/users/src/users.rs b/src/uu/users/src/users.rs index 761080139..79fac3b68 100644 --- a/src/uu/users/src/users.rs +++ b/src/uu/users/src/users.rs @@ -10,7 +10,7 @@ use std::path::Path; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use uucore::error::UResult; use uucore::format_usage; use uucore::utmpx::{self, Utmpx}; @@ -58,11 +58,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg(Arg::new(ARG_FILES).takes_value(true).max_values(1)) } diff --git a/src/uu/wc/src/wc.rs b/src/uu/wc/src/wc.rs index a07877e0e..61eda6828 100644 --- a/src/uu/wc/src/wc.rs +++ b/src/uu/wc/src/wc.rs @@ -18,7 +18,7 @@ use utf8::{BufReadDecoder, BufReadDecoderError}; use uucore::format_usage; use word_count::{TitledWordCount, WordCount}; -use clap::{crate_version, App, AppSettings, Arg, ArgMatches}; +use clap::{crate_version, Arg, ArgMatches, Command}; use std::cmp::max; use std::error::Error; @@ -183,12 +183,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { wc(&inputs, &settings) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::BYTES) .short('c') diff --git a/src/uu/who/src/who.rs b/src/uu/who/src/who.rs index 8c0a66c36..98ef06f47 100644 --- a/src/uu/who/src/who.rs +++ b/src/uu/who/src/who.rs @@ -12,7 +12,7 @@ use uucore::error::{FromIo, UResult}; use uucore::libc::{ttyname, STDIN_FILENO, S_IWGRP}; use uucore::utmpx::{self, time, Utmpx}; -use clap::{crate_version, App, AppSettings, Arg}; +use clap::{crate_version, Arg, Command}; use std::borrow::Cow; use std::ffi::CStr; use std::os::unix::fs::MetadataExt; @@ -151,12 +151,12 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { who.exec() } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) .override_usage(format_usage(USAGE)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) .arg( Arg::new(options::ALL) .long(options::ALL) diff --git a/src/uu/whoami/src/whoami.rs b/src/uu/whoami/src/whoami.rs index f55e026da..770802764 100644 --- a/src/uu/whoami/src/whoami.rs +++ b/src/uu/whoami/src/whoami.rs @@ -10,7 +10,7 @@ #[macro_use] extern crate clap; -use clap::{App, AppSettings}; +use clap::Command; use uucore::display::println_verbatim; use uucore::error::{FromIo, UResult}; @@ -27,9 +27,9 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { Ok(()) } -pub fn uu_app<'a>() -> App<'a> { - App::new(uucore::util_name()) +pub fn uu_app<'a>() -> Command<'a> { + Command::new(uucore::util_name()) .version(crate_version!()) .about(ABOUT) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) } diff --git a/src/uu/yes/src/yes.rs b/src/uu/yes/src/yes.rs index b237fb857..879f60579 100644 --- a/src/uu/yes/src/yes.rs +++ b/src/uu/yes/src/yes.rs @@ -13,7 +13,7 @@ use std::io::{self, Write}; #[macro_use] extern crate clap; -use clap::{App, AppSettings, Arg}; +use clap::{Arg, Command}; use uucore::error::{UResult, USimpleError}; use uucore::format_usage; @@ -49,11 +49,11 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } } -pub fn uu_app<'a>() -> App<'a> { - app_from_crate!() +pub fn uu_app<'a>() -> Command<'a> { + command!() .override_usage(format_usage(USAGE)) .arg(Arg::new("STRING").index(1).multiple_occurrences(true)) - .setting(AppSettings::InferLongArgs) + .infer_long_args(true) } fn prepare_buffer<'a>(input: &'a str, buffer: &'a mut [u8; BUF_SIZE]) -> &'a [u8] { diff --git a/src/uucore/src/lib/features/perms.rs b/src/uucore/src/lib/features/perms.rs index 942c67e29..970b2fca9 100644 --- a/src/uucore/src/lib/features/perms.rs +++ b/src/uucore/src/lib/features/perms.rs @@ -12,9 +12,9 @@ use crate::error::USimpleError; pub use crate::features::entries; use crate::fs::resolve_relative_path; use crate::show_error; -use clap::App; use clap::Arg; use clap::ArgMatches; +use clap::Command; use libc::{self, gid_t, uid_t}; use walkdir::WalkDir; @@ -414,13 +414,13 @@ type GidUidFilterParser = fn(&ArgMatches) -> UResult<(Option, Option, /// Base implementation for `chgrp` and `chown`. /// -/// An argument called `add_arg_if_not_reference` will be added to `app` if +/// An argument called `add_arg_if_not_reference` will be added to `command` if /// `args` does not contain the `--reference` option. /// `parse_gid_uid_and_filter` will be called to obtain the target gid and uid, and the filter, /// from `ArgMatches`. /// `groups_only` determines whether verbose output will only mention the group. pub fn chown_base<'a>( - mut app: App<'a>, + mut command: Command<'a>, args: impl crate::Args, add_arg_if_not_reference: &'a str, parse_gid_uid_and_filter: GidUidFilterParser, @@ -444,7 +444,7 @@ pub fn chown_base<'a>( if help || !reference { // add both positional arguments // arg_group is only required if - app = app.arg( + command = command.arg( Arg::new(add_arg_if_not_reference) .value_name(add_arg_if_not_reference) .required(true) @@ -452,7 +452,7 @@ pub fn chown_base<'a>( .multiple_occurrences(false), ); } - app = app.arg( + command = command.arg( Arg::new(options::ARG_FILES) .value_name(options::ARG_FILES) .multiple_occurrences(true) @@ -460,7 +460,7 @@ pub fn chown_base<'a>( .required(true) .min_values(1), ); - let matches = app.get_matches_from(args); + let matches = command.get_matches_from(args); let files: Vec = matches .values_of(options::ARG_FILES) diff --git a/src/uucore/src/lib/mods/backup_control.rs b/src/uucore/src/lib/mods/backup_control.rs index a2753b964..f2da374b6 100644 --- a/src/uucore/src/lib/mods/backup_control.rs +++ b/src/uucore/src/lib/mods/backup_control.rs @@ -34,16 +34,16 @@ //! #[macro_use] //! extern crate uucore; //! -//! use clap::{App, Arg, ArgMatches}; +//! use clap::{Command, Arg, ArgMatches}; //! use std::path::{Path, PathBuf}; //! use uucore::backup_control::{self, BackupMode}; //! use uucore::error::{UError, UResult}; //! //! fn main() { -//! let usage = String::from("app [OPTION]... ARG"); +//! let usage = String::from("command [OPTION]... ARG"); //! let long_usage = String::from("And here's a detailed explanation"); //! -//! let matches = App::new("app") +//! let matches = Command::new("command") //! .arg(backup_control::arguments::backup()) //! .arg(backup_control::arguments::backup_no_args()) //! .arg(backup_control::arguments::suffix()) @@ -54,7 +54,7 @@ //! backup_control::BACKUP_CONTROL_LONG_HELP //! )) //! .get_matches_from(vec![ -//! "app", "--backup=t", "--suffix=bak~" +//! "command", "--backup=t", "--suffix=bak~" //! ]); //! //! let backup_mode = match backup_control::determine_backup_mode(&matches) { @@ -290,14 +290,14 @@ pub fn determine_backup_suffix(matches: &ArgMatches) -> String { /// #[macro_use] /// extern crate uucore; /// use uucore::backup_control::{self, BackupMode}; -/// use clap::{App, Arg, ArgMatches}; +/// use clap::{Command, Arg, ArgMatches}; /// /// fn main() { -/// let matches = App::new("app") +/// let matches = Command::new("command") /// .arg(backup_control::arguments::backup()) /// .arg(backup_control::arguments::backup_no_args()) /// .get_matches_from(vec![ -/// "app", "-b", "--backup=t" +/// "command", "-b", "--backup=t" /// ]); /// /// let backup_mode = backup_control::determine_backup_mode(&matches).unwrap(); @@ -313,14 +313,14 @@ pub fn determine_backup_suffix(matches: &ArgMatches) -> String { /// #[macro_use] /// extern crate uucore; /// use uucore::backup_control::{self, BackupMode, BackupError}; -/// use clap::{App, Arg, ArgMatches}; +/// use clap::{Command, Arg, ArgMatches}; /// /// fn main() { -/// let matches = App::new("app") +/// let matches = Command::new("command") /// .arg(backup_control::arguments::backup()) /// .arg(backup_control::arguments::backup_no_args()) /// .get_matches_from(vec![ -/// "app", "-b", "--backup=n" +/// "command", "-b", "--backup=n" /// ]); /// /// let backup_mode = backup_control::determine_backup_mode(&matches); @@ -446,7 +446,7 @@ mod tests { use super::*; use std::env; // Required to instantiate mutex in shared context - use clap::App; + use clap::Command; use lazy_static::lazy_static; use std::sync::Mutex; @@ -463,8 +463,8 @@ mod tests { // Environment variable for "VERSION_CONTROL" static ENV_VERSION_CONTROL: &str = "VERSION_CONTROL"; - fn make_app() -> clap::App<'static> { - App::new("app") + fn make_app() -> clap::Command<'static> { + Command::new("command") .arg(arguments::backup()) .arg(arguments::backup_no_args()) .arg(arguments::suffix()) @@ -474,7 +474,7 @@ mod tests { #[test] fn test_backup_mode_short_only() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "-b"]); + let matches = make_app().get_matches_from(vec!["command", "-b"]); let result = determine_backup_mode(&matches).unwrap(); @@ -485,7 +485,7 @@ mod tests { #[test] fn test_backup_mode_long_preferred_over_short() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "-b", "--backup=none"]); + let matches = make_app().get_matches_from(vec!["command", "-b", "--backup=none"]); let result = determine_backup_mode(&matches).unwrap(); @@ -496,7 +496,7 @@ mod tests { #[test] fn test_backup_mode_long_without_args_no_env() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "--backup"]); + let matches = make_app().get_matches_from(vec!["command", "--backup"]); let result = determine_backup_mode(&matches).unwrap(); @@ -507,7 +507,7 @@ mod tests { #[test] fn test_backup_mode_long_with_args() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "--backup=simple"]); + let matches = make_app().get_matches_from(vec!["command", "--backup=simple"]); let result = determine_backup_mode(&matches).unwrap(); @@ -518,7 +518,7 @@ mod tests { #[test] fn test_backup_mode_long_with_args_invalid() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "--backup=foobar"]); + let matches = make_app().get_matches_from(vec!["command", "--backup=foobar"]); let result = determine_backup_mode(&matches); @@ -531,7 +531,7 @@ mod tests { #[test] fn test_backup_mode_long_with_args_ambiguous() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "--backup=n"]); + let matches = make_app().get_matches_from(vec!["command", "--backup=n"]); let result = determine_backup_mode(&matches); @@ -544,7 +544,7 @@ mod tests { #[test] fn test_backup_mode_long_with_arg_shortened() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "--backup=si"]); + let matches = make_app().get_matches_from(vec!["command", "--backup=si"]); let result = determine_backup_mode(&matches).unwrap(); @@ -556,7 +556,7 @@ mod tests { fn test_backup_mode_short_only_ignore_env() { let _dummy = TEST_MUTEX.lock().unwrap(); env::set_var(ENV_VERSION_CONTROL, "none"); - let matches = make_app().get_matches_from(vec!["app", "-b"]); + let matches = make_app().get_matches_from(vec!["command", "-b"]); let result = determine_backup_mode(&matches).unwrap(); @@ -569,7 +569,7 @@ mod tests { fn test_backup_mode_long_without_args_with_env() { let _dummy = TEST_MUTEX.lock().unwrap(); env::set_var(ENV_VERSION_CONTROL, "none"); - let matches = make_app().get_matches_from(vec!["app", "--backup"]); + let matches = make_app().get_matches_from(vec!["command", "--backup"]); let result = determine_backup_mode(&matches).unwrap(); @@ -582,7 +582,7 @@ mod tests { fn test_backup_mode_long_with_env_var_invalid() { let _dummy = TEST_MUTEX.lock().unwrap(); env::set_var(ENV_VERSION_CONTROL, "foobar"); - let matches = make_app().get_matches_from(vec!["app", "--backup"]); + let matches = make_app().get_matches_from(vec!["command", "--backup"]); let result = determine_backup_mode(&matches); @@ -597,7 +597,7 @@ mod tests { fn test_backup_mode_long_with_env_var_ambiguous() { let _dummy = TEST_MUTEX.lock().unwrap(); env::set_var(ENV_VERSION_CONTROL, "n"); - let matches = make_app().get_matches_from(vec!["app", "--backup"]); + let matches = make_app().get_matches_from(vec!["command", "--backup"]); let result = determine_backup_mode(&matches); @@ -612,7 +612,7 @@ mod tests { fn test_backup_mode_long_with_env_var_shortened() { let _dummy = TEST_MUTEX.lock().unwrap(); env::set_var(ENV_VERSION_CONTROL, "si"); - let matches = make_app().get_matches_from(vec!["app", "--backup"]); + let matches = make_app().get_matches_from(vec!["command", "--backup"]); let result = determine_backup_mode(&matches).unwrap(); @@ -623,7 +623,7 @@ mod tests { #[test] fn test_suffix_takes_hyphen_value() { let _dummy = TEST_MUTEX.lock().unwrap(); - let matches = make_app().get_matches_from(vec!["app", "-b", "--suffix", "-v"]); + let matches = make_app().get_matches_from(vec!["command", "-b", "--suffix", "-v"]); let result = determine_backup_suffix(&matches); assert_eq!(result, "-v"); diff --git a/tests/by-util/test_link.rs b/tests/by-util/test_link.rs index 5a84364e9..6e98f1d64 100644 --- a/tests/by-util/test_link.rs +++ b/tests/by-util/test_link.rs @@ -45,7 +45,7 @@ fn test_link_one_argument() { let (_, mut ucmd) = at_and_ucmd!(); let file = "test_link_argument"; ucmd.args(&[file]).fails().stderr_contains( - "error: The argument '...' requires at least 2 values, but only 1 was provide", + "error: The argument '...' requires at least 2 values but only 1 was provided", ); } diff --git a/tests/by-util/test_mknod.rs b/tests/by-util/test_mknod.rs index f42ab0b90..3b22ef835 100644 --- a/tests/by-util/test_mknod.rs +++ b/tests/by-util/test_mknod.rs @@ -86,14 +86,14 @@ fn test_mknod_character_device_requires_major_and_minor() { .arg("1") .arg("c") .fails() - .stderr_contains(&"Invalid value for ''"); + .stderr_contains(&"Invalid value \"c\" for ''"); new_ucmd!() .arg("test_file") .arg("c") .arg("c") .arg("1") .fails() - .stderr_contains(&"Invalid value for ''"); + .stderr_contains(&"Invalid value \"c\" for ''"); } #[test]