Skip to content

Commit

Permalink
Merge pull request #3904 from cakebaker/pr_use_clap_for_help_and_version
Browse files Browse the repository at this point in the history
pr: use clap to handle help & version
  • Loading branch information
tertsdiepraam committed Sep 25, 2022
2 parents fce36c8 + ebbf8ad commit 9ce600f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 25 deletions.
29 changes: 4 additions & 25 deletions src/uu/pr/src/pr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#[macro_use]
extern crate quick_error;

use clap::{AppSettings, Arg, ArgMatches, Command};
use clap::{crate_version, Arg, ArgMatches, Command};
use itertools::Itertools;
use quick_error::ResultExt;
use regex::Regex;
Expand All @@ -22,9 +22,8 @@ use time::macros::format_description;
use time::OffsetDateTime;

use uucore::display::Quotable;
use uucore::error::{set_exit_code, UResult};
use uucore::error::UResult;

const VERSION: &str = env!("CARGO_PKG_VERSION");
const ABOUT: &str =
"Write content of given file or standard input to standard output with pagination filter";
const AFTER_HELP: &str =
Expand Down Expand Up @@ -85,7 +84,6 @@ mod options {
pub const INDENT: &str = "indent";
pub const JOIN_LINES: &str = "join-lines";
pub const HELP: &str = "help";
pub const VERSION: &str = "version";
pub const FILES: &str = "files";
}

Expand Down Expand Up @@ -196,13 +194,11 @@ quick_error! {

pub fn uu_app<'a>() -> Command<'a> {
Command::new(uucore::util_name())
.version(VERSION)
.version(crate_version!())
.about(ABOUT)
.after_help(AFTER_HELP)
.infer_long_args(true)
.args_override_self(true)
.setting(AppSettings::NoAutoHelp)
.setting(AppSettings::NoAutoVersion)
.arg(
Arg::new(options::PAGES)
.long(options::PAGES)
Expand Down Expand Up @@ -362,13 +358,7 @@ pub fn uu_app<'a>() -> Command<'a> {
.arg(
Arg::new(options::HELP)
.long(options::HELP)
.help("Show this help message")
)
.arg(
Arg::new(options::VERSION)
.short('V')
.long(options::VERSION)
.help("Show version information")
.help("Print help information")
)
.arg(
Arg::new(options::FILES)
Expand All @@ -389,21 +379,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
Ok(m) => m,
Err(e) => {
e.print()?;
set_exit_code(1);
return Ok(());
}
};

if matches.contains_id(options::VERSION) {
println!("{}", command.render_long_version());
return Ok(());
}

if matches.contains_id(options::HELP) {
command.print_help()?;
return Ok(());
}

let mut files = matches
.get_many::<String>(options::FILES)
.map(|v| v.map(|s| s.as_str()).collect::<Vec<_>>())
Expand Down
10 changes: 10 additions & 0 deletions tests/by-util/test_pr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -469,3 +469,13 @@ fn test_value_for_number_lines() {
// Therefore, pr tries to access the file, which does not exist.
new_ucmd!().args(&["-n", "foo5.txt", "test.log"]).fails();
}

#[test]
fn test_help() {
new_ucmd!().arg("--help").succeeds();
}

#[test]
fn test_version() {
new_ucmd!().arg("--version").succeeds();
}

0 comments on commit 9ce600f

Please sign in to comment.