diff -r 5844cd8e81ca -r 37bc3edef76f rust/rhg/src/commands/status.rs --- a/rust/rhg/src/commands/status.rs Mon Nov 14 17:18:56 2022 +0100 +++ b/rust/rhg/src/commands/status.rs Tue Nov 15 00:02:43 2022 +0100 @@ -8,7 +8,7 @@ use crate::error::CommandError; use crate::ui::Ui; use crate::utils::path_utils::RelativizePaths; -use clap::{Arg, SubCommand}; +use clap::Arg; use format_bytes::format_bytes; use hg::config::Config; use hg::dirstate::has_exec_bit; @@ -41,75 +41,86 @@ Some options might be missing, check the list below. "; -pub fn args() -> clap::App<'static, 'static> { - SubCommand::with_name("status") +pub fn args() -> clap::Command { + clap::command!("status") .alias("st") .about(HELP_TEXT) .arg( - Arg::with_name("all") + Arg::new("all") .help("show status of all files") - .short("-A") - .long("--all"), + .short('A') + .action(clap::ArgAction::SetTrue) + .long("all"), ) .arg( - Arg::with_name("modified") + Arg::new("modified") .help("show only modified files") - .short("-m") - .long("--modified"), + .short('m') + .action(clap::ArgAction::SetTrue) + .long("modified"), ) .arg( - Arg::with_name("added") + Arg::new("added") .help("show only added files") - .short("-a") - .long("--added"), + .short('a') + .action(clap::ArgAction::SetTrue) + .long("added"), ) .arg( - Arg::with_name("removed") + Arg::new("removed") .help("show only removed files") - .short("-r") - .long("--removed"), + .short('r') + .action(clap::ArgAction::SetTrue) + .long("removed"), ) .arg( - Arg::with_name("clean") + Arg::new("clean") .help("show only clean files") - .short("-c") - .long("--clean"), + .short('c') + .action(clap::ArgAction::SetTrue) + .long("clean"), ) .arg( - Arg::with_name("deleted") + Arg::new("deleted") .help("show only deleted files") - .short("-d") - .long("--deleted"), + .short('d') + .action(clap::ArgAction::SetTrue) + .long("deleted"), ) .arg( - Arg::with_name("unknown") + Arg::new("unknown") .help("show only unknown (not tracked) files") - .short("-u") - .long("--unknown"), + .short('u') + .action(clap::ArgAction::SetTrue) + .long("unknown"), ) .arg( - Arg::with_name("ignored") + Arg::new("ignored") .help("show only ignored files") - .short("-i") - .long("--ignored"), + .short('i') + .action(clap::ArgAction::SetTrue) + .long("ignored"), ) .arg( - Arg::with_name("copies") + Arg::new("copies") .help("show source of copied files (DEFAULT: ui.statuscopies)") - .short("-C") - .long("--copies"), + .short('C') + .action(clap::ArgAction::SetTrue) + .long("copies"), ) .arg( - Arg::with_name("no-status") + Arg::new("no-status") .help("hide status prefix") - .short("-n") - .long("--no-status"), + .short('n') + .action(clap::ArgAction::SetTrue) + .long("no-status"), ) .arg( - Arg::with_name("verbose") + Arg::new("verbose") .help("enable additional output") - .short("-v") - .long("--verbose"), + .short('v') + .action(clap::ArgAction::SetTrue) + .long("verbose"), ) } @@ -200,25 +211,25 @@ let config = invocation.config; let args = invocation.subcommand_args; - let verbose = !args.is_present("print0") - && (args.is_present("verbose") - || config.get_bool(b"ui", b"verbose")? - || config.get_bool(b"commands", b"status.verbose")?); + // TODO add `!args.get_flag("print0") &&` when we support `print0` + let verbose = args.get_flag("verbose") + || config.get_bool(b"ui", b"verbose")? + || config.get_bool(b"commands", b"status.verbose")?; - let all = args.is_present("all"); + let all = args.get_flag("all"); let display_states = if all { // TODO when implementing `--quiet`: it excludes clean files // from `--all` ALL_DISPLAY_STATES } else { let requested = DisplayStates { - modified: args.is_present("modified"), - added: args.is_present("added"), - removed: args.is_present("removed"), - clean: args.is_present("clean"), - deleted: args.is_present("deleted"), - unknown: args.is_present("unknown"), - ignored: args.is_present("ignored"), + modified: args.get_flag("modified"), + added: args.get_flag("added"), + removed: args.get_flag("removed"), + clean: args.get_flag("clean"), + deleted: args.get_flag("deleted"), + unknown: args.get_flag("unknown"), + ignored: args.get_flag("ignored"), }; if requested.is_empty() { DEFAULT_DISPLAY_STATES @@ -226,9 +237,9 @@ requested } }; - let no_status = args.is_present("no-status"); + let no_status = args.get_flag("no-status"); let list_copies = all - || args.is_present("copies") + || args.get_flag("copies") || config.get_bool(b"ui", b"statuscopies")?; let repo = invocation.repo?;