Mercurial > public > mercurial-scm > hg-stable
diff rust/rhg/src/commands/debugrhgsparse.rs @ 49758:37bc3edef76f
rhg: upgrade `clap` dependency
This one is the worst one to upgrade since v2 -> v4 broke a ton of API,
which thankfully seems saner now.
Contrary to what was done in the `hg-core/src/examples/nodemap` rewrite,
we're not switching from the "builder" pattern to the "derive" pattern,
since that would imply a much larger diff. It can be done incrementally.
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Tue, 15 Nov 2022 00:02:43 +0100 |
parents | 85f5d11c77dd |
children | 58074252db3c |
line wrap: on
line diff
--- a/rust/rhg/src/commands/debugrhgsparse.rs Mon Nov 14 17:18:56 2022 +0100 +++ b/rust/rhg/src/commands/debugrhgsparse.rs Tue Nov 15 00:02:43 2022 +0100 @@ -1,19 +1,21 @@ -use std::os::unix::prelude::OsStrExt; +use std::{ + ffi::{OsStr, OsString}, + os::unix::prelude::OsStrExt, +}; use crate::error::CommandError; -use clap::SubCommand; use hg::{self, utils::hg_path::HgPath}; pub const HELP_TEXT: &str = ""; -pub fn args() -> clap::App<'static, 'static> { - SubCommand::with_name("debugrhgsparse") +pub fn args() -> clap::Command { + clap::command!("debugrhgsparse") .arg( - clap::Arg::with_name("files") + clap::Arg::new("files") + .value_name("FILES") .required(true) - .multiple(true) - .empty_values(false) - .value_name("FILES") + .num_args(1..) + .value_parser(clap::value_parser!(std::ffi::OsString)) .help("Files to check against sparse profile"), ) .about(HELP_TEXT) @@ -23,8 +25,12 @@ let repo = invocation.repo?; let (matcher, _warnings) = hg::sparse::matcher(&repo).unwrap(); - let files = invocation.subcommand_args.values_of_os("files"); + let files = invocation.subcommand_args.get_many::<OsString>("files"); if let Some(files) = files { + let files: Vec<&OsStr> = files + .filter(|s| !s.is_empty()) + .map(|s| s.as_os_str()) + .collect(); for file in files { invocation.ui.write_stdout(b"matches: ")?; invocation.ui.write_stdout(