diff --git a/dev/src/uu_chroot/chroot.rs.html b/dev/src/uu_chroot/chroot.rs.html
index b9e590afa..7f8b390a4 100644
--- a/dev/src/uu_chroot/chroot.rs.html
+++ b/dev/src/uu_chroot/chroot.rs.html
@@ -317,10 +317,10 @@
use uucore::error::{set_exit_code, UClapError, UResult, UUsageError};
use uucore::fs::{canonicalize, MissingHandling, ResolveMode};
use uucore::libc::{self, chroot, setgid, setgroups, setuid};
-use uucore::{entries, format_usage};
+use uucore::{entries, format_usage, help_about, help_usage};
-static ABOUT: &str = "Run COMMAND with root directory set to NEWROOT.";
-static USAGE: &str = "{} [OPTION]... NEWROOT [COMMAND [ARG]...]";
+static ABOUT: &str = help_about!("chroot.md");
+static USAGE: &str = help_usage!("chroot.md");
mod options {
pub const NEWROOT: &str = "newroot";
diff --git a/dev/src/uu_cp/cp.rs.html b/dev/src/uu_cp/cp.rs.html
index 19c5bdf10..3b3640afb 100644
--- a/dev/src/uu_cp/cp.rs.html
+++ b/dev/src/uu_cp/cp.rs.html
@@ -1889,7 +1889,7 @@
use std::path::{Path, PathBuf, StripPrefixError};
use std::string::ToString;
-use clap::{crate_version, Arg, ArgAction, ArgMatches, Command};
+use clap::{builder::ValueParser, crate_version, Arg, ArgAction, ArgMatches, Command};
use filetime::FileTime;
use indicatif::{ProgressBar, ProgressStyle};
#[cfg(unix)]
@@ -1954,7 +1954,7 @@
Backup(description: String) { display("{}\nTry '{} --help' for more information.", description, uucore::execution_phrase()) }
- NotADirectory(path: String) { display("'{}' is not a directory", path) }
+ NotADirectory(path: PathBuf) { display("'{}' is not a directory", path.display()) }
}
}
@@ -2085,7 +2085,7 @@
attributes: Attributes,
recursive: bool,
backup_suffix: String,
- target_dir: Option<String>,
+ target_dir: Option<PathBuf>,
update: bool,
verbose: bool,
progress_bar: bool,
@@ -2165,6 +2165,7 @@
.long(options::TARGET_DIRECTORY)
.value_name(options::TARGET_DIRECTORY)
.value_hint(clap::ValueHint::DirPath)
+ .value_parser(ValueParser::path_buf())
.help("copy all SOURCE arguments into target-directory"),
)
.arg(
@@ -2418,7 +2419,8 @@
.arg(
Arg::new(options::PATHS)
.action(ArgAction::Append)
- .value_hint(clap::ValueHint::AnyPath),
+ .value_hint(clap::ValueHint::AnyPath)
+ .value_parser(ValueParser::path_buf()),
)
}
@@ -2439,7 +2441,7 @@
clap::error::ErrorKind::DisplayVersion => print!("{}", app.render_version()),
_ => return Err(Box::new(e.with_exit_code(1))),
};
- } else if let Ok(matches) = matches {
+ } else if let Ok(mut matches) = matches {
let options = Options::from_matches(&matches)?;
if options.overwrite == OverwriteMode::NoClobber && options.backup != BackupMode::NoBackup {
@@ -2449,12 +2451,12 @@
));
}
- let paths: Vec<String> = matches
- .get_many::<String>(options::PATHS)
- .map(|v| v.map(ToString::to_string).collect())
+ let paths: Vec<PathBuf> = matches
+ .remove_many::<PathBuf>(options::PATHS)
+ .map(|v| v.collect())
.unwrap_or_default();
- let (sources, target) = parse_path_args(&paths, &options)?;
+ let (sources, target) = parse_path_args(paths, &options)?;
if let Err(error) = copy(&sources, &target, &options) {
match error {
@@ -2617,11 +2619,11 @@
let no_target_dir = matches.get_flag(options::NO_TARGET_DIRECTORY);
let target_dir = matches
- .get_one::<String>(options::TARGET_DIRECTORY)
- .map(ToString::to_string);
+ .get_one::<PathBuf>(options::TARGET_DIRECTORY)
+ .cloned();
if let Some(dir) = &target_dir {
- if !Path::new(dir).is_dir() {
+ if !dir.is_dir() {
return Err(Error::NotADirectory(dir.clone()));
}
};
@@ -2778,9 +2780,7 @@
}
fn parse_path_args(path_args: &[String], options: &Options) -> CopyResult<(Vec<Source>, Target)> {
- let mut paths = path_args.iter().map(PathBuf::from).collect::<Vec<_>>();
-
+fn parse_path_args(mut paths: Vec<Source>, options: &Options) -> CopyResult<(Vec<Source>, Target)> {
if paths.is_empty() {
return Err("missing file operand".into());
@@ -2796,7 +2796,7 @@
Some(ref target) => {
PathBuf::from(target)
+ target.clone()
}
None => {