1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-31 13:07:46 +00:00

Use clap::ArgAction in true and false

This commit is contained in:
Jaroslaw Konik 2022-08-06 16:16:09 +02:00
parent c401b35fdd
commit 025a0dfa9e
2 changed files with 24 additions and 20 deletions

View file

@ -4,7 +4,7 @@
// * // *
// * For the full copyright and license information, please view the LICENSE // * For the full copyright and license information, please view the LICENSE
// * file that was distributed with this source code. // * file that was distributed with this source code.
use clap::{Arg, Command}; use clap::{Arg, ArgAction, Command};
use std::io::Write; use std::io::Write;
use uucore::error::{set_exit_code, UResult}; use uucore::error::{set_exit_code, UResult};
@ -26,13 +26,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
// and unwind through the standard library allocation handling machinery. // and unwind through the standard library allocation handling machinery.
set_exit_code(1); set_exit_code(1);
if let Ok(matches) = command.try_get_matches_from_mut(args) { if let Err(e) = command.try_get_matches_from_mut(args) {
let error = if matches.index_of("help").is_some() { let error = match e.kind() {
command.print_help() clap::ErrorKind::DisplayHelp => command.print_help(),
} else if matches.index_of("version").is_some() { clap::ErrorKind::DisplayVersion => {
writeln!(std::io::stdout(), "{}", command.render_version()) writeln!(std::io::stdout(), "{}", command.render_version())
} else { }
Ok(()) _ => Ok(()),
}; };
// Try to display this error. // Try to display this error.
@ -56,11 +56,13 @@ pub fn uu_app<'a>() -> Command<'a> {
Arg::new("help") Arg::new("help")
.long("help") .long("help")
.help("Print help information") .help("Print help information")
.exclusive(true), .exclusive(true)
.action(ArgAction::Help),
) )
.arg( .arg(
Arg::new("version") Arg::new("version")
.long("version") .long("version")
.help("Print version information"), .help("Print version information")
.action(ArgAction::Version),
) )
} }

View file

@ -4,7 +4,7 @@
// * // *
// * For the full copyright and license information, please view the LICENSE // * For the full copyright and license information, please view the LICENSE
// * file that was distributed with this source code. // * file that was distributed with this source code.
use clap::{Arg, Command}; use clap::{Arg, ArgAction, Command};
use std::io::Write; use std::io::Write;
use uucore::error::{set_exit_code, UResult}; use uucore::error::{set_exit_code, UResult};
@ -20,13 +20,13 @@ operation causes the program to return `1` instead.
pub fn uumain(args: impl uucore::Args) -> UResult<()> { pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let mut command = uu_app(); let mut command = uu_app();
if let Ok(matches) = command.try_get_matches_from_mut(args) { if let Err(e) = command.try_get_matches_from_mut(args) {
let error = if matches.index_of("help").is_some() { let error = match e.kind() {
command.print_help() clap::ErrorKind::DisplayHelp => command.print_help(),
} else if matches.index_of("version").is_some() { clap::ErrorKind::DisplayVersion => {
writeln!(std::io::stdout(), "{}", command.render_version()) writeln!(std::io::stdout(), "{}", command.render_version())
} else { }
Ok(()) _ => Ok(()),
}; };
if let Err(print_fail) = error { if let Err(print_fail) = error {
@ -53,11 +53,13 @@ pub fn uu_app<'a>() -> Command<'a> {
Arg::new("help") Arg::new("help")
.long("help") .long("help")
.help("Print help information") .help("Print help information")
.exclusive(true), .exclusive(true)
.action(ArgAction::Help),
) )
.arg( .arg(
Arg::new("version") Arg::new("version")
.long("version") .long("version")
.help("Print version information"), .help("Print version information")
.action(ArgAction::Version),
) )
} }