mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 14:52:33 +00:00
Merge #2867
2867: fix(help)!: Merge OPTIONS / FLAGS default groups r=pksunkara a=epage Co-authored-by: Ed Page <eopage@gmail.com>
This commit is contained in:
commit
c5296977e5
33 changed files with 341 additions and 895 deletions
10
README.md
10
README.md
|
@ -385,15 +385,13 @@ ARGS:
|
||||||
INPUT The input file to use
|
INPUT The input file to use
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
MyApp [FLAGS] [OPTIONS] <INPUT> [SUBCOMMAND]
|
MyApp [OPTIONS] <INPUT> [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-v Sets the level of verbosity
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --config <FILE> Sets a custom config file
|
-c, --config <FILE> Sets a custom config file
|
||||||
|
-h, --help Print help information
|
||||||
|
-v Sets the level of verbosity
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
help Print this message or the help of the given subcommand(s)
|
help Print this message or the help of the given subcommand(s)
|
||||||
|
|
|
@ -196,7 +196,7 @@ pub fn example10(c: &mut Criterion) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn example4_template(c: &mut Criterion) {
|
pub fn example4_template(c: &mut Criterion) {
|
||||||
let mut app = app_example4().help_template("{bin} {version}\n{author}\n{about}\n\nUSAGE:\n {usage}\n\nFLAGS:\n{flags}\n\nARGS:\n{args}\n");
|
let mut app = app_example4().help_template("{bin} {version}\n{author}\n{about}\n\nUSAGE:\n {usage}\n\nOPTIONS:\n{options}\n\nARGS:\n{args}\n");
|
||||||
c.bench_function("example4_template", |b| b.iter(|| build_help(&mut app)));
|
c.bench_function("example4_template", |b| b.iter(|| build_help(&mut app)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
//
|
//
|
||||||
// CLI used is adapted from ripgrep 48a8a3a691220f9e5b2b08f4051abe8655ea7e8a
|
// CLI used is adapted from ripgrep 48a8a3a691220f9e5b2b08f4051abe8655ea7e8a
|
||||||
|
|
||||||
use clap::{App, AppSettings, Arg, ArgSettings};
|
use clap::{App, Arg, ArgSettings};
|
||||||
use criterion::{criterion_group, criterion_main, Criterion};
|
use criterion::{criterion_group, criterion_main, Criterion};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::io::Cursor;
|
use std::io::Cursor;
|
||||||
|
@ -267,7 +267,7 @@ ARGS:
|
||||||
{positionals}
|
{positionals}
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
{unified}";
|
{options}";
|
||||||
|
|
||||||
/// Build a clap application with short help strings.
|
/// Build a clap application with short help strings.
|
||||||
fn app_short() -> App<'static> {
|
fn app_short() -> App<'static> {
|
||||||
|
@ -306,7 +306,6 @@ where
|
||||||
.version("0.4.0") // Simulating
|
.version("0.4.0") // Simulating
|
||||||
.about(ABOUT)
|
.about(ABOUT)
|
||||||
.max_term_width(100)
|
.max_term_width(100)
|
||||||
.setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.override_usage(USAGE)
|
.override_usage(USAGE)
|
||||||
.help_template(TEMPLATE)
|
.help_template(TEMPLATE)
|
||||||
// Handle help/version manually to make their output formatting
|
// Handle help/version manually to make their output formatting
|
||||||
|
|
|
@ -82,22 +82,20 @@ Guillaume Pinot <texitoi@texitoi.eu>, others
|
||||||
A basic example
|
A basic example
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
basic [FLAGS] [OPTIONS] --output <output> [--] [file]...
|
basic [OPTIONS] --output <output> [--] [file]...
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<FILE>... Files to process
|
<FILE>... Files to process
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
|
-c, --nb-cars <nb-cars> Number of cars
|
||||||
-d, --debug Activate debug mode
|
-d, --debug Activate debug mode
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
-v, --verbose Verbose mode (-v, -vv, -vvv, etc.)
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-l, --level <level>... admin_level to consider
|
-l, --level <level>... admin_level to consider
|
||||||
-c, --nb-cars <nb-cars> Number of cars
|
|
||||||
-o, --output <output> Output file
|
-o, --output <output> Output file
|
||||||
-s, --speed <speed> Set speed [default: 42]
|
-s, --speed <speed> Set speed [default: 42]
|
||||||
|
-V, --version Print version information
|
||||||
|
-v, --verbose Verbose mode (-v, -vv, -vvv, etc.)
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<file>... Files to process
|
<file>... Files to process
|
||||||
|
|
|
@ -19,7 +19,7 @@ pub const DISPLAY_ORDER: usize = 2;
|
||||||
|
|
||||||
// Check if the global settings compile
|
// Check if the global settings compile
|
||||||
#[derive(Parser, Debug, PartialEq, Eq)]
|
#[derive(Parser, Debug, PartialEq, Eq)]
|
||||||
#[clap(global_setting = AppSettings::UnifiedHelpMessage)]
|
#[clap(global_setting = AppSettings::AllowLeadingHyphen)]
|
||||||
struct Opt {
|
struct Opt {
|
||||||
#[clap(
|
#[clap(
|
||||||
long = "x",
|
long = "x",
|
||||||
|
|
|
@ -50,11 +50,9 @@ Simple program to greet a person
|
||||||
USAGE:
|
USAGE:
|
||||||
hello [OPTIONS] --name <name>
|
hello [OPTIONS] --name <name>
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --count <count> Number of times to greet [default: 1]
|
-c, --count <count> Number of times to greet [default: 1]
|
||||||
|
-h, --help Print help information
|
||||||
-n, --name <name> Name of the person to greet
|
-n, --name <name> Name of the person to greet
|
||||||
|
-V, --version Print version information
|
||||||
```
|
```
|
||||||
|
|
|
@ -283,6 +283,19 @@ pub(crate) fn assert_app(app: &App) {
|
||||||
detect_duplicate_flags(&long_flags, "long");
|
detect_duplicate_flags(&long_flags, "long");
|
||||||
detect_duplicate_flags(&short_flags, "short");
|
detect_duplicate_flags(&short_flags, "short");
|
||||||
|
|
||||||
|
if let Some(help_template) = app.template {
|
||||||
|
assert!(
|
||||||
|
!help_template.contains("{flags}"),
|
||||||
|
"{}",
|
||||||
|
"`{flags}` template variable was removed in clap3, they are now included in `{options}`"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
!help_template.contains("{unified}"),
|
||||||
|
"{}",
|
||||||
|
"`{unified}` template variable was removed in clap3, use `{options}` instead"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
app._panic_on_missing_help(app.g_settings.is_set(AppSettings::HelpRequired));
|
app._panic_on_missing_help(app.g_settings.is_set(AppSettings::HelpRequired));
|
||||||
assert_app_flags(app);
|
assert_app_flags(app);
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,7 +206,7 @@ impl<'help> App<'help> {
|
||||||
self.args.args()
|
self.args.args()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Iterate through the *positionals*.
|
/// Iterate through the *positionals* arguments.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn get_positionals(&self) -> impl Iterator<Item = &Arg<'help>> {
|
pub fn get_positionals(&self) -> impl Iterator<Item = &Arg<'help>> {
|
||||||
self.get_arguments().filter(|a| a.is_positional())
|
self.get_arguments().filter(|a| a.is_positional())
|
||||||
|
@ -224,22 +224,6 @@ impl<'help> App<'help> {
|
||||||
.filter(|a| a.is_set(ArgSettings::TakesValue) && a.get_index().is_none())
|
.filter(|a| a.is_set(ArgSettings::TakesValue) && a.get_index().is_none())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Iterate through the *positionals* that don't have custom heading.
|
|
||||||
pub fn get_positionals_with_no_heading(&self) -> impl Iterator<Item = &Arg<'help>> {
|
|
||||||
self.get_positionals()
|
|
||||||
.filter(|a| a.get_help_heading().is_none())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Iterate through the *flags* that don't have custom heading.
|
|
||||||
pub fn get_flags_with_no_heading(&self) -> impl Iterator<Item = &Arg<'help>> {
|
|
||||||
self.get_flags().filter(|a| a.get_help_heading().is_none())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Iterate through the *options* that don't have custom heading.
|
|
||||||
pub fn get_opts_with_no_heading(&self) -> impl Iterator<Item = &Arg<'help>> {
|
|
||||||
self.get_opts().filter(|a| a.get_help_heading().is_none())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get a list of subcommands which contain the provided Argument
|
// Get a list of subcommands which contain the provided Argument
|
||||||
//
|
//
|
||||||
// This command will only include subcommands in its list for which the subcommands
|
// This command will only include subcommands in its list for which the subcommands
|
||||||
|
@ -863,10 +847,6 @@ impl<'help> App<'help> {
|
||||||
/// * `{usage}` - Automatically generated or given usage string.
|
/// * `{usage}` - Automatically generated or given usage string.
|
||||||
/// * `{all-args}` - Help for all arguments (options, flags, positional
|
/// * `{all-args}` - Help for all arguments (options, flags, positional
|
||||||
/// arguments, and subcommands) including titles.
|
/// arguments, and subcommands) including titles.
|
||||||
/// * `{unified}` - Unified help for options and flags. Note, you must *also*
|
|
||||||
/// set [`AppSettings::UnifiedHelpMessage`] to fully merge both
|
|
||||||
/// options and flags, otherwise the ordering is "best effort".
|
|
||||||
/// * `{flags}` - Help for flags.
|
|
||||||
/// * `{options}` - Help for options.
|
/// * `{options}` - Help for options.
|
||||||
/// * `{positionals}` - Help for positional arguments.
|
/// * `{positionals}` - Help for positional arguments.
|
||||||
/// * `{subcommands}` - Help for subcommands.
|
/// * `{subcommands}` - Help for subcommands.
|
||||||
|
@ -986,7 +966,7 @@ impl<'help> App<'help> {
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// # use clap::{App, AppSettings};
|
/// # use clap::{App, AppSettings};
|
||||||
/// App::new("myprog")
|
/// App::new("myprog")
|
||||||
/// .unset_global_setting(AppSettings::UnifiedHelpMessage)
|
/// .unset_global_setting(AppSettings::AllowNegativeNumbers)
|
||||||
/// # ;
|
/// # ;
|
||||||
/// ```
|
/// ```
|
||||||
/// [global]: App::global_setting()
|
/// [global]: App::global_setting()
|
||||||
|
@ -1116,7 +1096,7 @@ impl<'help> App<'help> {
|
||||||
/// header for the specified argument type) until a subsequent call to
|
/// header for the specified argument type) until a subsequent call to
|
||||||
/// [`App::help_heading`] or [`App::stop_custom_headings`].
|
/// [`App::help_heading`] or [`App::stop_custom_headings`].
|
||||||
///
|
///
|
||||||
/// This is useful if the default `FLAGS`, `OPTIONS`, or `ARGS` headings are
|
/// This is useful if the default `OPTIONS` or `ARGS` headings are
|
||||||
/// not specific enough for one's use case.
|
/// not specific enough for one's use case.
|
||||||
///
|
///
|
||||||
/// [`App::arg`]: App::arg()
|
/// [`App::arg`]: App::arg()
|
||||||
|
@ -1732,9 +1712,9 @@ impl<'help> App<'help> {
|
||||||
/// cust-ord
|
/// cust-ord
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// cust-ord [FLAGS] [OPTIONS]
|
/// cust-ord [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
///
|
///
|
||||||
|
@ -2200,7 +2180,7 @@ impl<'help> App<'help> {
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// myprog [SUBCOMMAND]
|
/// myprog [SUBCOMMAND]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
///
|
///
|
||||||
|
@ -2228,7 +2208,7 @@ impl<'help> App<'help> {
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// myprog [THING]
|
/// myprog [THING]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
///
|
///
|
||||||
|
@ -2674,6 +2654,23 @@ impl<'a, T> Captures<'a> for T {}
|
||||||
|
|
||||||
// Internal Query Methods
|
// Internal Query Methods
|
||||||
impl<'help> App<'help> {
|
impl<'help> App<'help> {
|
||||||
|
/// Iterate through the *named* arguments.
|
||||||
|
pub(crate) fn get_non_positional(&self) -> impl Iterator<Item = &Arg<'help>> {
|
||||||
|
self.get_arguments().filter(|a| !a.is_positional())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Iterate through the *positionals* that don't have custom heading.
|
||||||
|
pub(crate) fn get_positionals_with_no_heading(&self) -> impl Iterator<Item = &Arg<'help>> {
|
||||||
|
self.get_positionals()
|
||||||
|
.filter(|a| a.get_help_heading().is_none())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Iterate through the *named* that don't have custom heading.
|
||||||
|
pub(crate) fn get_non_positional_with_no_heading(&self) -> impl Iterator<Item = &Arg<'help>> {
|
||||||
|
self.get_non_positional()
|
||||||
|
.filter(|a| a.get_help_heading().is_none())
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn find(&self, arg_id: &Id) -> Option<&Arg<'help>> {
|
pub(crate) fn find(&self, arg_id: &Id) -> Option<&Arg<'help>> {
|
||||||
self.args.args().find(|a| a.id == *arg_id)
|
self.args.args().find(|a| a.id == *arg_id)
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ bitflags! {
|
||||||
const ARG_REQUIRED_ELSE_HELP = 1 << 2;
|
const ARG_REQUIRED_ELSE_HELP = 1 << 2;
|
||||||
const PROPAGATE_VERSION = 1 << 3;
|
const PROPAGATE_VERSION = 1 << 3;
|
||||||
const DISABLE_VERSION_FOR_SC = 1 << 4;
|
const DISABLE_VERSION_FOR_SC = 1 << 4;
|
||||||
const UNIFIED_HELP = 1 << 5;
|
|
||||||
const WAIT_ON_ERROR = 1 << 6;
|
const WAIT_ON_ERROR = 1 << 6;
|
||||||
const SC_REQUIRED_ELSE_HELP = 1 << 7;
|
const SC_REQUIRED_ELSE_HELP = 1 << 7;
|
||||||
const NO_AUTO_HELP = 1 << 8;
|
const NO_AUTO_HELP = 1 << 8;
|
||||||
|
@ -112,8 +111,6 @@ impl_settings! { AppSettings, AppFlags,
|
||||||
=> Flags::USE_LONG_FORMAT_FOR_HELP_SC,
|
=> Flags::USE_LONG_FORMAT_FOR_HELP_SC,
|
||||||
TrailingVarArg("trailingvararg")
|
TrailingVarArg("trailingvararg")
|
||||||
=> Flags::TRAILING_VARARG,
|
=> Flags::TRAILING_VARARG,
|
||||||
UnifiedHelpMessage("unifiedhelpmessage")
|
|
||||||
=> Flags::UNIFIED_HELP,
|
|
||||||
NextLineHelp("nextlinehelp")
|
NextLineHelp("nextlinehelp")
|
||||||
=> Flags::NEXT_LINE_HELP,
|
=> Flags::NEXT_LINE_HELP,
|
||||||
IgnoreErrors("ignoreerrors")
|
IgnoreErrors("ignoreerrors")
|
||||||
|
@ -892,25 +889,6 @@ pub enum AppSettings {
|
||||||
/// [`Arg::multiple_values(true)`]: crate::Arg::multiple_values()
|
/// [`Arg::multiple_values(true)`]: crate::Arg::multiple_values()
|
||||||
TrailingVarArg,
|
TrailingVarArg,
|
||||||
|
|
||||||
/// Groups flags and options together, presenting a more unified help message
|
|
||||||
/// (a la `getopts` or `docopt` style).
|
|
||||||
///
|
|
||||||
/// The default is that the auto-generated help message will group flags, and options
|
|
||||||
/// separately.
|
|
||||||
///
|
|
||||||
/// **NOTE:** This setting is cosmetic only and does not affect any functionality.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```rust
|
|
||||||
/// # use clap::{App, Arg, AppSettings};
|
|
||||||
/// App::new("myprog")
|
|
||||||
/// .setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
/// .get_matches();
|
|
||||||
/// // running `myprog --help` will display a unified "docopt" or "getopts" style help message
|
|
||||||
/// ```
|
|
||||||
UnifiedHelpMessage,
|
|
||||||
|
|
||||||
/// Will display a message "Press \[ENTER\]/\[RETURN\] to continue..." and wait for user before
|
/// Will display a message "Press \[ENTER\]/\[RETURN\] to continue..." and wait for user before
|
||||||
/// exiting
|
/// exiting
|
||||||
///
|
///
|
||||||
|
@ -1086,10 +1064,6 @@ mod test {
|
||||||
"trailingvararg".parse::<AppSettings>().unwrap(),
|
"trailingvararg".parse::<AppSettings>().unwrap(),
|
||||||
AppSettings::TrailingVarArg
|
AppSettings::TrailingVarArg
|
||||||
);
|
);
|
||||||
assert_eq!(
|
|
||||||
"unifiedhelpmessage".parse::<AppSettings>().unwrap(),
|
|
||||||
AppSettings::UnifiedHelpMessage
|
|
||||||
);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
"waitonerror".parse::<AppSettings>().unwrap(),
|
"waitonerror".parse::<AppSettings>().unwrap(),
|
||||||
AppSettings::WaitOnError
|
AppSettings::WaitOnError
|
||||||
|
|
|
@ -13,7 +13,7 @@ fn propagate_version() {
|
||||||
#[test]
|
#[test]
|
||||||
fn global_setting() {
|
fn global_setting() {
|
||||||
let mut app = App::new("test")
|
let mut app = App::new("test")
|
||||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
.global_setting(AppSettings::AllowLeadingHyphen)
|
||||||
.subcommand(App::new("subcmd"));
|
.subcommand(App::new("subcmd"));
|
||||||
app._propagate();
|
app._propagate();
|
||||||
assert!(app
|
assert!(app
|
||||||
|
@ -21,13 +21,13 @@ fn global_setting() {
|
||||||
.iter()
|
.iter()
|
||||||
.find(|s| s.name == "subcmd")
|
.find(|s| s.name == "subcmd")
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.is_set(AppSettings::UnifiedHelpMessage));
|
.is_set(AppSettings::AllowLeadingHyphen));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn global_settings() {
|
fn global_settings() {
|
||||||
let mut app = App::new("test")
|
let mut app = App::new("test")
|
||||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
.global_setting(AppSettings::AllowLeadingHyphen)
|
||||||
.global_setting(AppSettings::TrailingVarArg)
|
.global_setting(AppSettings::TrailingVarArg)
|
||||||
.subcommand(App::new("subcmd"));
|
.subcommand(App::new("subcmd"));
|
||||||
app._propagate();
|
app._propagate();
|
||||||
|
@ -36,7 +36,7 @@ fn global_settings() {
|
||||||
.iter()
|
.iter()
|
||||||
.find(|s| s.name == "subcmd")
|
.find(|s| s.name == "subcmd")
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.is_set(AppSettings::UnifiedHelpMessage));
|
.is_set(AppSettings::AllowLeadingHyphen));
|
||||||
assert!(app
|
assert!(app
|
||||||
.subcommands
|
.subcommands
|
||||||
.iter()
|
.iter()
|
||||||
|
|
|
@ -659,9 +659,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// --config Some help text describing the --config arg
|
/// --config Some help text describing the --config arg
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
|
@ -723,9 +723,9 @@ impl<'help> Arg<'help> {
|
||||||
/// prog
|
/// prog
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// prog [FLAGS]
|
/// prog [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// --config
|
/// --config
|
||||||
/// The config file used by the myprog must be in JSON format
|
/// The config file used by the myprog must be in JSON format
|
||||||
/// with only valid keys and may not contain other nonsense
|
/// with only valid keys and may not contain other nonsense
|
||||||
|
@ -2575,14 +2575,12 @@ impl<'help> Arg<'help> {
|
||||||
/// valnames
|
/// valnames
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// valnames [FLAGS] [OPTIONS]
|
/// valnames [OPTIONS]
|
||||||
///
|
|
||||||
/// FLAGS:
|
|
||||||
/// -h, --help Print help information
|
|
||||||
/// -V, --version Print version information
|
|
||||||
///
|
///
|
||||||
/// OPTIONS:
|
/// OPTIONS:
|
||||||
|
/// -h, --help Print help information
|
||||||
/// --io-files <INFILE> <OUTFILE> Some help text
|
/// --io-files <INFILE> <OUTFILE> Some help text
|
||||||
|
/// -V, --version Print version information
|
||||||
/// ```
|
/// ```
|
||||||
/// [`Arg::next_line_help(true)`]: Arg::next_line_help()
|
/// [`Arg::next_line_help(true)`]: Arg::next_line_help()
|
||||||
/// [`Arg::number_of_values`]: Arg::number_of_values()
|
/// [`Arg::number_of_values`]: Arg::number_of_values()
|
||||||
|
@ -2628,14 +2626,12 @@ impl<'help> Arg<'help> {
|
||||||
/// valnames
|
/// valnames
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// valnames [FLAGS] [OPTIONS]
|
/// valnames [OPTIONS]
|
||||||
///
|
|
||||||
/// FLAGS:
|
|
||||||
/// -h, --help Print help information
|
|
||||||
/// -V, --version Print version information
|
|
||||||
///
|
///
|
||||||
/// OPTIONS:
|
/// OPTIONS:
|
||||||
/// --config <FILE> Some help text
|
/// --config <FILE> Some help text
|
||||||
|
/// -h, --help Print help information
|
||||||
|
/// -V, --version Print version information
|
||||||
/// ```
|
/// ```
|
||||||
/// [option]: Arg::takes_value()
|
/// [option]: Arg::takes_value()
|
||||||
/// [positional]: Arg::index()
|
/// [positional]: Arg::index()
|
||||||
|
@ -3293,13 +3289,11 @@ impl<'help> Arg<'help> {
|
||||||
/// cust-ord
|
/// cust-ord
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// cust-ord [FLAGS] [OPTIONS]
|
/// cust-ord [OPTIONS]
|
||||||
///
|
|
||||||
/// FLAGS:
|
|
||||||
/// -h, --help Print help information
|
|
||||||
/// -V, --version Print version information
|
|
||||||
///
|
///
|
||||||
/// OPTIONS:
|
/// OPTIONS:
|
||||||
|
/// -h, --help Print help information
|
||||||
|
/// -V, --version Print version information
|
||||||
/// -O, --other-option <b> I should be first!
|
/// -O, --other-option <b> I should be first!
|
||||||
/// -o, --long-option <a> Some help and text
|
/// -o, --long-option <a> Some help and text
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -3318,14 +3312,13 @@ impl<'help> Arg<'help> {
|
||||||
/// allows one to access this arg early using the `--` syntax. Accessing an arg early, even with
|
/// allows one to access this arg early using the `--` syntax. Accessing an arg early, even with
|
||||||
/// the `--` syntax is otherwise not possible.
|
/// the `--` syntax is otherwise not possible.
|
||||||
///
|
///
|
||||||
/// **NOTE:** This will change the usage string to look like `$ prog [FLAGS] [-- <ARG>]` if
|
/// **NOTE:** This will change the usage string to look like `$ prog [OPTIONS] [-- <ARG>]` if
|
||||||
/// `ARG` is marked as `.last(true)`.
|
/// `ARG` is marked as `.last(true)`.
|
||||||
///
|
///
|
||||||
/// **NOTE:** This setting will imply [`crate::AppSettings::DontCollapseArgsInUsage`] because failing
|
/// **NOTE:** This setting will imply [`crate::AppSettings::DontCollapseArgsInUsage`] because failing
|
||||||
/// to set this can make the usage string very confusing.
|
/// to set this can make the usage string very confusing.
|
||||||
///
|
///
|
||||||
/// **NOTE**: This setting only applies to positional arguments, and has no affect on FLAGS /
|
/// **NOTE**: This setting only applies to positional arguments, and has no affect on OPTIONS
|
||||||
/// OPTIONS
|
|
||||||
///
|
///
|
||||||
/// **NOTE:** Setting this requires [`crate::ArgSettings::TakesValue`]
|
/// **NOTE:** Setting this requires [`crate::ArgSettings::TakesValue`]
|
||||||
///
|
///
|
||||||
|
@ -3873,9 +3866,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -4114,13 +4107,11 @@ impl<'help> Arg<'help> {
|
||||||
/// nlh
|
/// nlh
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// nlh [FLAGS] [OPTIONS]
|
/// nlh [OPTIONS]
|
||||||
///
|
|
||||||
/// FLAGS:
|
|
||||||
/// -h, --help Print help information
|
|
||||||
/// -V, --version Print version information
|
|
||||||
///
|
///
|
||||||
/// OPTIONS:
|
/// OPTIONS:
|
||||||
|
/// -h, --help Print help information
|
||||||
|
/// -V, --version Print version information
|
||||||
/// -o, --long-option-flag <value1> <value2>
|
/// -o, --long-option-flag <value1> <value2>
|
||||||
/// Some really long help and complex
|
/// Some really long help and complex
|
||||||
/// help that makes more sense to be
|
/// help that makes more sense to be
|
||||||
|
@ -4499,9 +4490,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -4526,9 +4517,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// --config Some help text describing the --config arg
|
/// --config Some help text describing the --config arg
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
|
@ -4577,9 +4568,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -4604,9 +4595,9 @@ impl<'help> Arg<'help> {
|
||||||
/// helptest
|
/// helptest
|
||||||
///
|
///
|
||||||
/// USAGE:
|
/// USAGE:
|
||||||
/// helptest [FLAGS]
|
/// helptest [OPTIONS]
|
||||||
///
|
///
|
||||||
/// FLAGS:
|
/// OPTIONS:
|
||||||
/// --config Some help text describing the --config arg
|
/// --config Some help text describing the --config arg
|
||||||
/// -h, --help Print help information
|
/// -h, --help Print help information
|
||||||
/// -V, --version Print version information
|
/// -V, --version Print version information
|
||||||
|
|
|
@ -747,16 +747,10 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> {
|
||||||
.get_positionals_with_no_heading()
|
.get_positionals_with_no_heading()
|
||||||
.filter(|arg| should_show_arg(self.use_long, arg))
|
.filter(|arg| should_show_arg(self.use_long, arg))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
let flags = self
|
let non_pos = self
|
||||||
.parser
|
.parser
|
||||||
.app
|
.app
|
||||||
.get_flags_with_no_heading()
|
.get_non_positional_with_no_heading()
|
||||||
.filter(|arg| should_show_arg(self.use_long, arg))
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
let opts = self
|
|
||||||
.parser
|
|
||||||
.app
|
|
||||||
.get_opts_with_no_heading()
|
|
||||||
.filter(|arg| should_show_arg(self.use_long, arg))
|
.filter(|arg| should_show_arg(self.use_long, arg))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
let subcmds = self.parser.app.has_visible_subcommands();
|
let subcmds = self.parser.app.has_visible_subcommands();
|
||||||
|
@ -778,37 +772,12 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> {
|
||||||
true
|
true
|
||||||
};
|
};
|
||||||
|
|
||||||
let unified_help = self.parser.is_set(AppSettings::UnifiedHelpMessage);
|
if !non_pos.is_empty() {
|
||||||
|
|
||||||
if unified_help && (!flags.is_empty() || !opts.is_empty()) {
|
|
||||||
let opts_flags = self
|
|
||||||
.parser
|
|
||||||
.app
|
|
||||||
.args
|
|
||||||
.args()
|
|
||||||
.filter(|a| !a.is_positional())
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
if !first {
|
if !first {
|
||||||
self.none("\n\n")?;
|
self.none("\n\n")?;
|
||||||
}
|
}
|
||||||
self.warning("OPTIONS:\n")?;
|
self.warning("OPTIONS:\n")?;
|
||||||
self.write_args(&*opts_flags)?;
|
self.write_args(&non_pos)?;
|
||||||
first = false;
|
|
||||||
} else {
|
|
||||||
if !flags.is_empty() {
|
|
||||||
if !first {
|
|
||||||
self.none("\n\n")?;
|
|
||||||
}
|
|
||||||
self.warning("FLAGS:\n")?;
|
|
||||||
self.write_args(&flags)?;
|
|
||||||
first = false;
|
|
||||||
}
|
|
||||||
if !opts.is_empty() {
|
|
||||||
if !first {
|
|
||||||
self.none("\n\n")?;
|
|
||||||
}
|
|
||||||
self.warning("OPTIONS:\n")?;
|
|
||||||
self.write_args(&opts)?;
|
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
if !custom_headings.is_empty() {
|
if !custom_headings.is_empty() {
|
||||||
|
@ -837,7 +806,6 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if subcmds {
|
if subcmds {
|
||||||
if !first {
|
if !first {
|
||||||
|
@ -1012,21 +980,10 @@ impl<'help, 'app, 'parser, 'writer> Help<'help, 'app, 'parser, 'writer> {
|
||||||
"all-args" => {
|
"all-args" => {
|
||||||
self.write_all_args()?;
|
self.write_all_args()?;
|
||||||
}
|
}
|
||||||
"unified" => {
|
|
||||||
let opts_flags = self
|
|
||||||
.parser
|
|
||||||
.app
|
|
||||||
.args
|
|
||||||
.args()
|
|
||||||
.filter(|a| !a.is_positional())
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
self.write_args(&opts_flags)?;
|
|
||||||
}
|
|
||||||
"flags" => {
|
|
||||||
self.write_args(&self.parser.app.get_flags().collect::<Vec<_>>())?;
|
|
||||||
}
|
|
||||||
"options" => {
|
"options" => {
|
||||||
self.write_args(&self.parser.app.get_opts().collect::<Vec<_>>())?;
|
// Include even those with a heading as we don't have a good way of
|
||||||
|
// handling help_heading in the template.
|
||||||
|
self.write_args(&self.parser.app.get_non_positional().collect::<Vec<_>>())?;
|
||||||
}
|
}
|
||||||
"positionals" => {
|
"positionals" => {
|
||||||
self.write_args(&self.parser.app.get_positionals().collect::<Vec<_>>())?;
|
self.write_args(&self.parser.app.get_positionals().collect::<Vec<_>>())?;
|
||||||
|
|
|
@ -62,19 +62,7 @@ impl<'help, 'app, 'parser> Usage<'help, 'app, 'parser> {
|
||||||
String::new()
|
String::new()
|
||||||
};
|
};
|
||||||
|
|
||||||
let flags = self.needs_flags_tag();
|
if self.needs_options_tag() {
|
||||||
if flags && !self.p.is_set(AS::UnifiedHelpMessage) {
|
|
||||||
usage.push_str(" [FLAGS]");
|
|
||||||
} else if flags {
|
|
||||||
usage.push_str(" [OPTIONS]");
|
|
||||||
}
|
|
||||||
if !self.p.is_set(AS::UnifiedHelpMessage)
|
|
||||||
&& self
|
|
||||||
.p
|
|
||||||
.app
|
|
||||||
.get_opts()
|
|
||||||
.any(|o| !o.is_set(ArgSettings::Required) && !o.is_set(ArgSettings::Hidden))
|
|
||||||
{
|
|
||||||
usage.push_str(" [OPTIONS]");
|
usage.push_str(" [OPTIONS]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +81,7 @@ impl<'help, 'app, 'parser> Usage<'help, 'app, 'parser> {
|
||||||
if self
|
if self
|
||||||
.p
|
.p
|
||||||
.app
|
.app
|
||||||
.get_opts()
|
.get_non_positional()
|
||||||
.any(|o| o.is_set(ArgSettings::MultipleValues))
|
.any(|o| o.is_set(ArgSettings::MultipleValues))
|
||||||
&& self
|
&& self
|
||||||
.p
|
.p
|
||||||
|
@ -328,22 +316,28 @@ impl<'help, 'app, 'parser> Usage<'help, 'app, 'parser> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determines if we need the `[FLAGS]` tag in the usage string
|
// Determines if we need the `[OPTIONS]` tag in the usage string
|
||||||
fn needs_flags_tag(&self) -> bool {
|
fn needs_options_tag(&self) -> bool {
|
||||||
debug!("Usage::needs_flags_tag");
|
debug!("Usage::needs_options_tag");
|
||||||
'outer: for f in self.p.app.get_flags() {
|
'outer: for f in self.p.app.get_non_positional() {
|
||||||
debug!("Usage::needs_flags_tag:iter: f={}", f.name);
|
debug!("Usage::needs_options_tag:iter: f={}", f.name);
|
||||||
|
|
||||||
// Don't print `[FLAGS]` just for help or version
|
// Don't print `[OPTIONS]` just for help or version
|
||||||
if f.long == Some("help") || f.long == Some("version") {
|
if f.long == Some("help") || f.long == Some("version") {
|
||||||
|
debug!("Usage::needs_options_tag:iter Option is built-in");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.is_set(ArgSettings::Hidden) {
|
if f.is_set(ArgSettings::Hidden) {
|
||||||
|
debug!("Usage::needs_options_tag:iter Option is hidden");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if f.is_set(ArgSettings::Required) {
|
||||||
|
debug!("Usage::needs_options_tag:iter Option is required");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for grp_s in self.p.app.groups_for_arg(&f.id) {
|
for grp_s in self.p.app.groups_for_arg(&f.id) {
|
||||||
debug!("Usage::needs_flags_tag:iter:iter: grp_s={:?}", grp_s);
|
debug!("Usage::needs_options_tag:iter:iter: grp_s={:?}", grp_s);
|
||||||
if self
|
if self
|
||||||
.p
|
.p
|
||||||
.app
|
.app
|
||||||
|
@ -351,16 +345,16 @@ impl<'help, 'app, 'parser> Usage<'help, 'app, 'parser> {
|
||||||
.iter()
|
.iter()
|
||||||
.any(|g| g.id == grp_s && g.required)
|
.any(|g| g.id == grp_s && g.required)
|
||||||
{
|
{
|
||||||
debug!("Usage::needs_flags_tag:iter:iter: Group is required");
|
debug!("Usage::needs_options_tag:iter:iter: Group is required");
|
||||||
continue 'outer;
|
continue 'outer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug!("Usage::needs_flags_tag:iter: [FLAGS] required");
|
debug!("Usage::needs_options_tag:iter: [OPTIONS] required");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug!("Usage::needs_flags_tag: [FLAGS] not required");
|
debug!("Usage::needs_options_tag: [OPTIONS] not required");
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||||
USAGE:
|
USAGE:
|
||||||
clap
|
clap
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
|
@ -7,7 +7,7 @@ static ALLOW_EXT_SC: &str = "clap-test v1.4.8
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test [SUBCOMMAND]
|
clap-test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -22,7 +22,7 @@ ARGS:
|
||||||
<arg2> some
|
<arg2> some
|
||||||
<arg3> some
|
<arg3> some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -32,30 +32,9 @@ static REQUIRE_EQUALS: &str = "clap-test v1.4.8
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test --opt=<FILE>
|
clap-test --opt=<FILE>
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt=<FILE> some
|
-o, --opt=<FILE> some
|
||||||
";
|
|
||||||
|
|
||||||
static UNIFIED_HELP: &str = "test 1.3
|
|
||||||
|
|
||||||
Kevin K.
|
|
||||||
|
|
||||||
tests stuff
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [OPTIONS] [arg1]
|
|
||||||
|
|
||||||
ARGS:
|
|
||||||
<arg1> some pos arg
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-f, --flag some flag
|
|
||||||
-h, --help Print help information
|
|
||||||
--option <opt> some option
|
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
|
@ -71,20 +50,18 @@ USAGE:
|
||||||
ARGS:
|
ARGS:
|
||||||
<arg1> some pos arg
|
<arg1> some pos arg
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <opt> some option
|
-o, --opt <opt> some option
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ARG_REQUIRED_ELSE_HELP: &str = "test 1.0
|
static ARG_REQUIRED_ELSE_HELP: &str = "test 1.0
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-i, --info Provides more info
|
-i, --info Provides more info
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
@ -95,7 +72,7 @@ static SUBCOMMAND_REQUIRED_ELSE_HELP: &str = "test 1.0
|
||||||
USAGE:
|
USAGE:
|
||||||
test <SUBCOMMAND>
|
test <SUBCOMMAND>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -113,7 +90,7 @@ ARGS:
|
||||||
<foo>
|
<foo>
|
||||||
long form about message
|
long form about message
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
";
|
";
|
||||||
|
@ -125,7 +102,7 @@ long form about message
|
||||||
USAGE:
|
USAGE:
|
||||||
myprog test nested
|
myprog test nested
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
";
|
";
|
||||||
|
@ -139,7 +116,7 @@ ARGS:
|
||||||
<foo>
|
<foo>
|
||||||
long form about message
|
long form about message
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -445,26 +422,6 @@ fn no_bin_name() {
|
||||||
assert_eq!(matches.value_of("test").unwrap(), "testing");
|
assert_eq!(matches.value_of("test").unwrap(), "testing");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn unified_help() {
|
|
||||||
let app = App::new("myTest")
|
|
||||||
.name("test")
|
|
||||||
.author("Kevin K.")
|
|
||||||
.about("tests stuff")
|
|
||||||
.version("1.3")
|
|
||||||
.setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.arg("-f, --flag 'some flag'")
|
|
||||||
.arg("[arg1] 'some pos arg'")
|
|
||||||
.arg("--option [opt] 'some option'");
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
UNIFIED_HELP,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn skip_possible_values() {
|
fn skip_possible_values() {
|
||||||
let app = App::new("test")
|
let app = App::new("test")
|
||||||
|
|
|
@ -7,15 +7,13 @@ static SC_VISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
Some help
|
Some help
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ct test [FLAGS] [OPTIONS]
|
ct test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag [aliases: v_flg, flag2, flg3]
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag [aliases: v_flg, flag2, flg3]
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <opt> [aliases: visible]
|
-o, --opt <opt> [aliases: visible]
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
|
@ -23,15 +21,13 @@ static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
Some help
|
Some help
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ct test [FLAGS] [OPTIONS]
|
ct test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <opt>
|
-o, --opt <opt>
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
@ -7,15 +7,13 @@ static SC_VISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
Some help
|
Some help
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ct test [FLAGS] [OPTIONS]
|
ct test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag [aliases: flag1] [short aliases: a, b, 🦆]
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag [aliases: flag1] [short aliases: a, b, 🦆]
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <opt> [short aliases: v]
|
-o, --opt <opt> [short aliases: v]
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
|
@ -23,15 +21,13 @@ static SC_INVISIBLE_ALIAS_HELP: &str = "ct-test 1.2
|
||||||
Some help
|
Some help
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ct test [FLAGS] [OPTIONS]
|
ct test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <opt>
|
-o, --opt <opt>
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
@ -7,7 +7,7 @@ A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||||
USAGE:
|
USAGE:
|
||||||
prog
|
prog
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -19,7 +19,7 @@ Kevin K. <kbknapp@gmail.com>:Clap Maintainers
|
||||||
USAGE:
|
USAGE:
|
||||||
prog
|
prog
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
|
@ -6,38 +6,6 @@ use clap::{App, AppSettings, Arg};
|
||||||
|
|
||||||
static NO_DERIVE_ORDER: &str = "test 1.2
|
static NO_DERIVE_ORDER: &str = "test 1.2
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [FLAGS] [OPTIONS]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
--flag_a second flag
|
|
||||||
--flag_b first flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--option_a <option_a> second option
|
|
||||||
--option_b <option_b> first option
|
|
||||||
";
|
|
||||||
|
|
||||||
static DERIVE_ORDER: &str = "test 1.2
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [FLAGS] [OPTIONS]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
--flag_b first flag
|
|
||||||
--flag_a second flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--option_b <option_b> first option
|
|
||||||
--option_a <option_a> second option
|
|
||||||
";
|
|
||||||
|
|
||||||
static UNIFIED_HELP: &str = "test 1.2
|
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [OPTIONS]
|
test [OPTIONS]
|
||||||
|
|
||||||
|
@ -64,36 +32,6 @@ OPTIONS:
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static DERIVE_ORDER_SC_PROP: &str = "test-sub 1.2
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test sub [FLAGS] [OPTIONS]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
--flag_b first flag
|
|
||||||
--flag_a second flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--option_b <option_b> first option
|
|
||||||
--option_a <option_a> second option
|
|
||||||
";
|
|
||||||
|
|
||||||
static UNIFIED_SC_PROP: &str = "test-sub 1.2
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test sub [OPTIONS]
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--flag_a second flag
|
|
||||||
--flag_b first flag
|
|
||||||
-h, --help Print help information
|
|
||||||
--option_a <option_a> second option
|
|
||||||
--option_b <option_b> first option
|
|
||||||
-V, --version Print version information
|
|
||||||
";
|
|
||||||
|
|
||||||
static UNIFIED_DERIVE_SC_PROP: &str = "test-sub 1.2
|
static UNIFIED_DERIVE_SC_PROP: &str = "test-sub 1.2
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
@ -125,9 +63,9 @@ OPTIONS:
|
||||||
static PREFER_USER_HELP_DERIVE_ORDER: &str = "test 1.2
|
static PREFER_USER_HELP_DERIVE_ORDER: &str = "test 1.2
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help message
|
-h, --help Print help message
|
||||||
--flag_b first flag
|
--flag_b first flag
|
||||||
--flag_a second flag
|
--flag_a second flag
|
||||||
|
@ -137,9 +75,9 @@ FLAGS:
|
||||||
static PREFER_USER_HELP_SUBCMD_DERIVE_ORDER: &str = "test-sub 1.2
|
static PREFER_USER_HELP_SUBCMD_DERIVE_ORDER: &str = "test-sub 1.2
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test sub [FLAGS]
|
test sub [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help message
|
-h, --help Print help message
|
||||||
--flag_b first flag
|
--flag_b first flag
|
||||||
--flag_a second flag
|
--flag_a second flag
|
||||||
|
@ -187,59 +125,6 @@ fn derive_order() {
|
||||||
.about("second option"),
|
.about("second option"),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
DERIVE_ORDER,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn unified_help() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.version("1.2")
|
|
||||||
.args(&[
|
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
|
||||||
Arg::new("option_b")
|
|
||||||
.long("option_b")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("first option"),
|
|
||||||
Arg::new("flag_a").long("flag_a").about("second flag"),
|
|
||||||
Arg::new("option_a")
|
|
||||||
.long("option_a")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("second option"),
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
UNIFIED_HELP,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn unified_help_and_derive_order() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.setting(AppSettings::DeriveDisplayOrder)
|
|
||||||
.setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.version("1.2")
|
|
||||||
.args(&[
|
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
|
||||||
Arg::new("option_b")
|
|
||||||
.long("option_b")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("first option"),
|
|
||||||
Arg::new("flag_a").long("flag_a").about("second flag"),
|
|
||||||
Arg::new("option_a")
|
|
||||||
.long("option_a")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("second option"),
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
assert!(utils::compare_output(
|
||||||
app,
|
app,
|
||||||
"test --help",
|
"test --help",
|
||||||
|
@ -252,62 +137,6 @@ fn unified_help_and_derive_order() {
|
||||||
fn derive_order_subcommand_propagate() {
|
fn derive_order_subcommand_propagate() {
|
||||||
let app = App::new("test")
|
let app = App::new("test")
|
||||||
.global_setting(AppSettings::DeriveDisplayOrder)
|
.global_setting(AppSettings::DeriveDisplayOrder)
|
||||||
.version("1.2")
|
|
||||||
.subcommand(
|
|
||||||
App::new("sub").version("1.2").args(&[
|
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
|
||||||
Arg::new("option_b")
|
|
||||||
.long("option_b")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("first option"),
|
|
||||||
Arg::new("flag_a").long("flag_a").about("second flag"),
|
|
||||||
Arg::new("option_a")
|
|
||||||
.long("option_a")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("second option"),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test sub --help",
|
|
||||||
DERIVE_ORDER_SC_PROP,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn unified_help_subcommand_propagate() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.subcommand(
|
|
||||||
App::new("sub").version("1.2").args(&[
|
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
|
||||||
Arg::new("option_b")
|
|
||||||
.long("option_b")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("first option"),
|
|
||||||
Arg::new("flag_a").long("flag_a").about("second flag"),
|
|
||||||
Arg::new("option_a")
|
|
||||||
.long("option_a")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("second option"),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test sub --help",
|
|
||||||
UNIFIED_SC_PROP,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn unified_help_and_derive_order_subcommand_propagate() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.global_setting(AppSettings::DeriveDisplayOrder)
|
|
||||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.subcommand(
|
.subcommand(
|
||||||
App::new("sub").version("1.2").args(&[
|
App::new("sub").version("1.2").args(&[
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
Arg::new("flag_b").long("flag_b").about("first flag"),
|
||||||
|
@ -332,10 +161,9 @@ fn unified_help_and_derive_order_subcommand_propagate() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn unified_help_and_derive_order_subcommand_propagate_with_explicit_display_order() {
|
fn derive_order_subcommand_propagate_with_explicit_display_order() {
|
||||||
let app = App::new("test")
|
let app = App::new("test")
|
||||||
.global_setting(AppSettings::DeriveDisplayOrder)
|
.global_setting(AppSettings::DeriveDisplayOrder)
|
||||||
.global_setting(AppSettings::UnifiedHelpMessage)
|
|
||||||
.subcommand(
|
.subcommand(
|
||||||
App::new("sub").version("1.2").args(&[
|
App::new("sub").version("1.2").args(&[
|
||||||
Arg::new("flag_b").long("flag_b").about("first flag"),
|
Arg::new("flag_b").long("flag_b").about("first flag"),
|
||||||
|
|
|
@ -14,7 +14,7 @@ fn very_large_display_order() {
|
||||||
USAGE:
|
USAGE:
|
||||||
test [SUBCOMMAND]
|
test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
|
|
|
@ -3,9 +3,9 @@ use clap::{App, Arg, ErrorKind};
|
||||||
static HELP: &str = "prog
|
static HELP: &str = "prog
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS]
|
prog [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-a
|
-a
|
||||||
-b
|
-b
|
||||||
-c
|
-c
|
||||||
|
@ -16,7 +16,7 @@ static ONLY_B_ERROR: &str = "error: The following required arguments were not pr
|
||||||
-c
|
-c
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS] -c -b
|
prog [OPTIONS] -c -b
|
||||||
|
|
||||||
For more information try --help
|
For more information try --help
|
||||||
";
|
";
|
||||||
|
@ -25,7 +25,7 @@ static ONLY_C_ERROR: &str = "error: The following required arguments were not pr
|
||||||
-b
|
-b
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS] -b -c
|
prog [OPTIONS] -b -c
|
||||||
|
|
||||||
For more information try --help
|
For more information try --help
|
||||||
";
|
";
|
||||||
|
|
|
@ -430,10 +430,8 @@ Query the package database.
|
||||||
USAGE:
|
USAGE:
|
||||||
pacman {query, --query, -Q} [OPTIONS]
|
pacman {query, --query, -Q} [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-i, --info <info>... view package information
|
-i, --info <info>... view package information
|
||||||
-s, --search <search>... search locally installed packages for matching strings
|
-s, --search <search>... search locally installed packages for matching strings
|
||||||
";
|
";
|
||||||
|
@ -487,10 +485,8 @@ Query the package database.
|
||||||
USAGE:
|
USAGE:
|
||||||
pacman {query, --query} [OPTIONS]
|
pacman {query, --query} [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-i, --info <info>... view package information
|
-i, --info <info>... view package information
|
||||||
-s, --search <search>... search locally installed packages for matching strings
|
-s, --search <search>... search locally installed packages for matching strings
|
||||||
";
|
";
|
||||||
|
@ -543,10 +539,8 @@ Query the package database.
|
||||||
USAGE:
|
USAGE:
|
||||||
pacman {query, -Q} [OPTIONS]
|
pacman {query, -Q} [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-i, --info <info>... view package information
|
-i, --info <info>... view package information
|
||||||
-s, --search <search>... search locally installed packages for matching strings
|
-s, --search <search>... search locally installed packages for matching strings
|
||||||
";
|
";
|
||||||
|
|
|
@ -7,7 +7,7 @@ const USE_FLAG_AS_ARGUMENT: &str =
|
||||||
\tIf you tried to supply `--another-flag` as a value rather than a flag, use `-- --another-flag`
|
\tIf you tried to supply `--another-flag` as a value rather than a flag, use `-- --another-flag`
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
mycat [FLAGS] [filename]
|
mycat [OPTIONS] [filename]
|
||||||
|
|
||||||
For more information try --help
|
For more information try --help
|
||||||
";
|
";
|
||||||
|
|
|
@ -265,7 +265,7 @@ USAGE:
|
||||||
ARGS:
|
ARGS:
|
||||||
<A>
|
<A>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
";
|
";
|
||||||
let app = App::new("prog")
|
let app = App::new("prog")
|
||||||
|
|
357
tests/help.rs
357
tests/help.rs
|
@ -11,12 +11,10 @@ tests stuff
|
||||||
USAGE:
|
USAGE:
|
||||||
test --fake <some>:<val>
|
test --fake <some>:<val>
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-f, --fake <some>:<val> some help
|
-f, --fake <some>:<val> some help
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static HELP: &str = "clap-test v1.4.8
|
static HELP: &str = "clap-test v1.4.8
|
||||||
|
@ -26,20 +24,17 @@ Kevin K. <kbknapp@gmail.com>
|
||||||
tests clap library
|
tests clap library
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test [FLAGS] [OPTIONS] [ARGS] [SUBCOMMAND]
|
clap-test [OPTIONS] [ARGS] [SUBCOMMAND]
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<positional> tests positionals
|
<positional> tests positionals
|
||||||
<positional2> tests positionals with exclusions
|
<positional2> tests positionals with exclusions
|
||||||
<positional3>... tests specific values [possible values: vi, emacs]
|
<positional3>... tests specific values [possible values: vi, emacs]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-f, --flag tests flags
|
-f, --flag tests flags
|
||||||
-F tests flags with exclusions
|
-F tests flags with exclusions
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--long-option-2 <option2> tests long options with exclusions
|
--long-option-2 <option2> tests long options with exclusions
|
||||||
--maxvals3 <maxvals>... Tests 3 max vals
|
--maxvals3 <maxvals>... Tests 3 max vals
|
||||||
--minvals2 <minvals>... Tests 2 min vals
|
--minvals2 <minvals>... Tests 2 min vals
|
||||||
|
@ -47,6 +42,7 @@ OPTIONS:
|
||||||
--multvalsmo <one> <two> Tests multiple values, and mult occs
|
--multvalsmo <one> <two> Tests multiple values, and mult occs
|
||||||
-o, --option <opt>... tests options
|
-o, --option <opt>... tests options
|
||||||
-O, --Option <option3> specific vals [possible values: fast, slow]
|
-O, --Option <option3> specific vals [possible values: fast, slow]
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
help Print this message or the help of the given subcommand(s)
|
help Print this message or the help of the given subcommand(s)
|
||||||
|
@ -62,12 +58,10 @@ USAGE:
|
||||||
ARGS:
|
ARGS:
|
||||||
<PATH> help
|
<PATH> help
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <FILE> tests options
|
-o, --opt <FILE> tests options
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
help Print this message or the help of the given subcommand(s)
|
help Print this message or the help of the given subcommand(s)
|
||||||
|
@ -77,19 +71,17 @@ SUBCOMMANDS:
|
||||||
static ARGS_NEGATE_SC: &str = "prog 1.0
|
static ARGS_NEGATE_SC: &str = "prog 1.0
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS] [OPTIONS] [PATH]
|
prog [OPTIONS] [PATH]
|
||||||
prog <SUBCOMMAND>
|
prog <SUBCOMMAND>
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<PATH> help
|
<PATH> help
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-f, --flag testing flags
|
-f, --flag testing flags
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-o, --opt <FILE> tests options
|
-o, --opt <FILE> tests options
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
help Print this message or the help of the given subcommand(s)
|
help Print this message or the help of the given subcommand(s)
|
||||||
|
@ -105,7 +97,7 @@ tests clap library
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test
|
clap-test
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -121,7 +113,7 @@ tests clap library
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test
|
clap-test
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -134,15 +126,13 @@ some longer text that comes after the help
|
||||||
static HIDDEN_ARGS: &str = "prog 1.0
|
static HIDDEN_ARGS: &str = "prog 1.0
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS] [OPTIONS]
|
prog [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag testing flags
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag testing flags
|
||||||
|
-h, --help Print help information
|
||||||
-o, --opt <FILE> tests options
|
-o, --opt <FILE> tests options
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static SC_HELP: &str = "clap-test-subcmd 0.1
|
static SC_HELP: &str = "clap-test-subcmd 0.1
|
||||||
|
@ -152,36 +142,32 @@ Kevin K. <kbknapp@gmail.com>
|
||||||
tests subcommands
|
tests subcommands
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test subcmd [FLAGS] [OPTIONS] [--] [scpositional]
|
clap-test subcmd [OPTIONS] [--] [scpositional]
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<scpositional> tests positionals
|
<scpositional> tests positionals
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-f, --flag tests flags
|
-f, --flag tests flags
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-o, --option <scoption>... tests options
|
-o, --option <scoption>... tests options
|
||||||
-s, --subcmdarg <subcmdarg> tests other args
|
-s, --subcmdarg <subcmdarg> tests other args
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_1046_HIDDEN_SCS: &str = "prog 1.0
|
static ISSUE_1046_HIDDEN_SCS: &str = "prog 1.0
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS] [OPTIONS] [PATH]
|
prog [OPTIONS] [PATH]
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<PATH> some
|
<PATH> some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-f, --flag testing flags
|
-f, --flag testing flags
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-o, --opt <FILE> tests options
|
-o, --opt <FILE> tests options
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
// Using number_of_values(1) with multiple_values(true) misaligns help message
|
// Using number_of_values(1) with multiple_values(true) misaligns help message
|
||||||
|
@ -190,13 +176,11 @@ static ISSUE_760: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-o, --option <option> tests options
|
-o, --option <option> tests options
|
||||||
-O, --opt <opt> tests options
|
-O, --opt <opt> tests options
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static RIPGREP_USAGE: &str = "ripgrep 0.5
|
static RIPGREP_USAGE: &str = "ripgrep 0.5
|
||||||
|
@ -207,7 +191,7 @@ USAGE:
|
||||||
rg [OPTIONS] --files [<path> ...]
|
rg [OPTIONS] --files [<path> ...]
|
||||||
rg [OPTIONS] --type-list
|
rg [OPTIONS] --type-list
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -219,15 +203,13 @@ Kevin K. <kbknapp@gmail.com>
|
||||||
tests subcommands
|
tests subcommands
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest subcmd multi [FLAGS] [OPTIONS]
|
ctest subcmd multi [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-f, --flag tests flags
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-f, --flag tests flags
|
||||||
|
-h, --help Print help information
|
||||||
-o, --option <scoption>... tests options
|
-o, --option <scoption>... tests options
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_626_CUTOFF: &str = "ctest 0.1
|
static ISSUE_626_CUTOFF: &str = "ctest 0.1
|
||||||
|
@ -235,10 +217,6 @@ static ISSUE_626_CUTOFF: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café is an
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café is an
|
||||||
establishment which primarily serves hot
|
establishment which primarily serves hot
|
||||||
|
@ -248,6 +226,8 @@ OPTIONS:
|
||||||
cold beverages such as iced coffee and iced
|
cold beverages such as iced coffee and iced
|
||||||
tea. Many cafés also serve some type of food,
|
tea. Many cafés also serve some type of food,
|
||||||
such as light snacks, muffins, or pastries.
|
such as light snacks, muffins, or pastries.
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_626_PANIC: &str = "ctest 0.1
|
static ISSUE_626_PANIC: &str = "ctest 0.1
|
||||||
|
@ -255,10 +235,6 @@ static ISSUE_626_PANIC: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE>
|
-c, --cafe <FILE>
|
||||||
La culture du café est très développée
|
La culture du café est très développée
|
||||||
|
@ -268,6 +244,12 @@ OPTIONS:
|
||||||
les marchés d\'exportation. Le café est
|
les marchés d\'exportation. Le café est
|
||||||
souvent une contribution majeure aux
|
souvent une contribution majeure aux
|
||||||
exportations des régions productrices.
|
exportations des régions productrices.
|
||||||
|
|
||||||
|
-h, --help
|
||||||
|
Print help information
|
||||||
|
|
||||||
|
-V, --version
|
||||||
|
Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static HIDE_POS_VALS: &str = "ctest 0.1
|
static HIDE_POS_VALS: &str = "ctest 0.1
|
||||||
|
@ -275,13 +257,11 @@ static HIDE_POS_VALS: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café.
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café.
|
||||||
|
-h, --help Print help information
|
||||||
-p, --pos <VAL> Some vals [possible values: fast, slow]
|
-p, --pos <VAL> Some vals [possible values: fast, slow]
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static FINAL_WORD_WRAPPING: &str = "ctest 0.1
|
static FINAL_WORD_WRAPPING: &str = "ctest 0.1
|
||||||
|
@ -289,7 +269,7 @@ static FINAL_WORD_WRAPPING: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest
|
ctest
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help
|
Print help
|
||||||
information
|
information
|
||||||
|
@ -303,9 +283,9 @@ FLAGS:
|
||||||
static OLD_NEWLINE_CHARS: &str = "ctest 0.1
|
static OLD_NEWLINE_CHARS: &str = "ctest 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [FLAGS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-m Some help with some wrapping
|
-m Some help with some wrapping
|
||||||
(Defaults to something)
|
(Defaults to something)
|
||||||
|
@ -325,7 +305,7 @@ ARGS:
|
||||||
m, med, medium Copy-friendly, 8
|
m, med, medium Copy-friendly, 8
|
||||||
characters, contains symbols.
|
characters, contains symbols.
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -335,14 +315,12 @@ static ISSUE_688: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
--filter <filter> Sets the filter, or sampling method, to use for interpolation when resizing the particle
|
--filter <filter> Sets the filter, or sampling method, to use for interpolation when resizing the particle
|
||||||
images. The default is Linear (Bilinear). [possible values: Nearest, Linear, Cubic,
|
images. The default is Linear (Bilinear). [possible values: Nearest, Linear, Cubic,
|
||||||
Gaussian, Lanczos3]
|
Gaussian, Lanczos3]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_702: &str = "myapp 1.0
|
static ISSUE_702: &str = "myapp 1.0
|
||||||
|
@ -358,14 +336,12 @@ ARGS:
|
||||||
<arg1> some option
|
<arg1> some option
|
||||||
<arg2>... some option
|
<arg2>... some option
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-l, --label <label>... a label
|
-l, --label <label>... a label
|
||||||
-o, --other <other> some other option
|
-o, --other <other> some other option
|
||||||
-s, --some <some> some option
|
-s, --some <some> some option
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_777: &str = "A app with a crazy very long long
|
static ISSUE_777: &str = "A app with a crazy very long long
|
||||||
|
@ -380,7 +356,7 @@ wrapped
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest
|
ctest
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -392,9 +368,9 @@ FLAGS:
|
||||||
static ISSUE_1642: &str = "prog
|
static ISSUE_1642: &str = "prog
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
prog [FLAGS]
|
prog [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
--config
|
--config
|
||||||
The config file used by the myprog must be in JSON format
|
The config file used by the myprog must be in JSON format
|
||||||
with only valid keys and may not contain other nonsense
|
with only valid keys and may not contain other nonsense
|
||||||
|
@ -408,9 +384,9 @@ FLAGS:
|
||||||
static HELP_CONFLICT: &str = "conflict
|
static HELP_CONFLICT: &str = "conflict
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
conflict [FLAGS]
|
conflict [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h
|
-h
|
||||||
--help Print help information
|
--help Print help information
|
||||||
";
|
";
|
||||||
|
@ -425,7 +401,7 @@ ARGS:
|
||||||
<CORPUS> some
|
<CORPUS> some
|
||||||
<ARGS>... some
|
<ARGS>... some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -441,7 +417,7 @@ ARGS:
|
||||||
<CORPUS> some
|
<CORPUS> some
|
||||||
<ARGS>... some
|
<ARGS>... some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -460,7 +436,7 @@ ARGS:
|
||||||
<CORPUS> some
|
<CORPUS> some
|
||||||
<ARGS>... some
|
<ARGS>... some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -476,7 +452,7 @@ ARGS:
|
||||||
<CORPUS> some
|
<CORPUS> some
|
||||||
<ARGS>... some
|
<ARGS>... some
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -490,12 +466,10 @@ static HIDE_DEFAULT_VAL: &str = "default 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
default [OPTIONS]
|
default [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
--arg <argument> Pass an argument to the program. [default: default-argument]
|
--arg <argument> Pass an argument to the program. [default: default-argument]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ESCAPED_DEFAULT_VAL: &str = "default 0.1
|
static ESCAPED_DEFAULT_VAL: &str = "default 0.1
|
||||||
|
@ -503,32 +477,28 @@ static ESCAPED_DEFAULT_VAL: &str = "default 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
default [OPTIONS]
|
default [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
--arg <argument> Pass an argument to the program. [default: \"\\n\"] [possible values: normal, \" \", \"\\n\", \"\\t\",
|
--arg <argument> Pass an argument to the program. [default: \"\\n\"] [possible values: normal, \" \", \"\\n\", \"\\t\",
|
||||||
other]
|
other]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static LAST_ARG_USAGE: &str = "flamegraph 0.1
|
static LAST_ARG_USAGE: &str = "flamegraph 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
flamegraph [FLAGS] [OPTIONS] [BINFILE] [-- <ARGS>...]
|
flamegraph [OPTIONS] [BINFILE] [-- <ARGS>...]
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<BINFILE> The path of the binary to be profiled. for a binary.
|
<BINFILE> The path of the binary to be profiled. for a binary.
|
||||||
<ARGS>... Any arguments you wish to pass to the being profiled.
|
<ARGS>... Any arguments you wish to pass to the being profiled.
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-v, --verbose Prints out more stuff.
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-f, --frequency <HERTZ> The sampling frequency.
|
-f, --frequency <HERTZ> The sampling frequency.
|
||||||
|
-h, --help Print help information
|
||||||
-t, --timeout <SECONDS> Timeout in seconds.
|
-t, --timeout <SECONDS> Timeout in seconds.
|
||||||
|
-v, --verbose Prints out more stuff.
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static LAST_ARG_REQ_MULT: &str = "example 1.0
|
static LAST_ARG_REQ_MULT: &str = "example 1.0
|
||||||
|
@ -540,7 +510,7 @@ ARGS:
|
||||||
<FIRST>... First
|
<FIRST>... First
|
||||||
<SECOND>... Second
|
<SECOND>... Second
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -550,7 +520,7 @@ static DEFAULT_HELP: &str = "ctest 1.0
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest
|
ctest
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -570,7 +540,7 @@ ARGS:
|
||||||
<arg1>
|
<arg1>
|
||||||
some option
|
some option
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -585,14 +555,12 @@ Will M.
|
||||||
does stuff
|
does stuff
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS] --fake <some>:<val>
|
test [OPTIONS] --fake <some>:<val>
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-f, --fake <some>:<val> some help
|
-f, --fake <some>:<val> some help
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
NETWORKING:
|
NETWORKING:
|
||||||
-n, --no-proxy Do not use system proxy settings
|
-n, --no-proxy Do not use system proxy settings
|
||||||
|
@ -607,19 +575,19 @@ ARGS:
|
||||||
<arg1>
|
<arg1>
|
||||||
<arg2>
|
<arg2>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
";
|
";
|
||||||
|
|
||||||
static ISSUE_1364: &str = "demo
|
static ISSUE_1364: &str = "demo
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
demo [FLAGS] [OPTIONS] [FILES]...
|
demo [OPTIONS] [FILES]...
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<FILES>...
|
<FILES>...
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-f
|
-f
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
";
|
";
|
||||||
|
@ -627,9 +595,9 @@ FLAGS:
|
||||||
static OPTION_USAGE_ORDER: &str = "order
|
static OPTION_USAGE_ORDER: &str = "order
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
order [FLAGS]
|
order [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-a
|
-a
|
||||||
-b
|
-b
|
||||||
-B
|
-B
|
||||||
|
@ -645,7 +613,7 @@ static ABOUT_IN_SUBCOMMANDS_LIST: &str = "about-in-subcommands-list
|
||||||
USAGE:
|
USAGE:
|
||||||
about-in-subcommands-list [SUBCOMMAND]
|
about-in-subcommands-list [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -903,9 +871,9 @@ fn wrapped_help() {
|
||||||
static WRAPPED_HELP: &str = "test
|
static WRAPPED_HELP: &str = "test
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-a, --all
|
-a, --all
|
||||||
Also do versioning for private crates (will not be
|
Also do versioning for private crates (will not be
|
||||||
published)
|
published)
|
||||||
|
@ -960,9 +928,9 @@ fn unwrapped_help() {
|
||||||
static UNWRAPPED_HELP: &str = "test
|
static UNWRAPPED_HELP: &str = "test
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-a, --all Also do versioning for private crates
|
-a, --all Also do versioning for private crates
|
||||||
(will not be published)
|
(will not be published)
|
||||||
--exact Specify inter dependency version numbers
|
--exact Specify inter dependency version numbers
|
||||||
|
@ -1333,10 +1301,8 @@ fn issue_1571() {
|
||||||
USAGE:
|
USAGE:
|
||||||
hello [OPTIONS]
|
hello [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
-p, --package <name>
|
-p, --package <name>
|
||||||
",
|
",
|
||||||
false
|
false
|
||||||
|
@ -1377,8 +1343,8 @@ fn ripgrep_usage_using_templates() {
|
||||||
|
|
||||||
USAGE:{usage}
|
USAGE:{usage}
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
{flags}",
|
{options}",
|
||||||
);
|
);
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
assert!(utils::compare_output(
|
||||||
|
@ -1468,7 +1434,7 @@ static OVERRIDE_HELP_SHORT: &str = "test 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
test
|
test
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-H, --help Print help information
|
-H, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -1496,9 +1462,9 @@ fn override_help_short() {
|
||||||
static OVERRIDE_HELP_LONG: &str = "test 0.1
|
static OVERRIDE_HELP_LONG: &str = "test 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --hell Print help information
|
-h, --hell Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -1528,7 +1494,7 @@ static OVERRIDE_HELP_ABOUT: &str = "test 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
test
|
test
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -1814,15 +1780,13 @@ Will M.
|
||||||
does stuff
|
does stuff
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS] [OPTIONS] --fake <some>:<val> --birthday-song <song> --birthday-song-volume <volume>
|
test [OPTIONS] --fake <some>:<val> --birthday-song <song> --birthday-song-volume <volume>
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-f, --fake <some>:<val> some help
|
-f, --fake <some>:<val> some help
|
||||||
|
-h, --help Print help information
|
||||||
-s, --speed <SPEED> How fast? [possible values: fast, slow]
|
-s, --speed <SPEED> How fast? [possible values: fast, slow]
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
NETWORKING:
|
NETWORKING:
|
||||||
-a, --server-addr Set server address
|
-a, --server-addr Set server address
|
||||||
|
@ -1897,9 +1861,9 @@ Will M.
|
||||||
does stuff
|
does stuff
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS] --song <song> --song-volume <volume>
|
test [OPTIONS] --song <song> --song-volume <volume>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -1956,7 +1920,7 @@ Long about foo
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest foo
|
ctest foo
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -1987,7 +1951,7 @@ About foo
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest foo
|
ctest foo
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -2170,7 +2134,7 @@ static HELP_ABOUT_MULTI_SC: &str = "myapp-subcmd-multi 1.0
|
||||||
USAGE:
|
USAGE:
|
||||||
myapp subcmd multi
|
myapp subcmd multi
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print custom help about text
|
-h, --help Print custom help about text
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -2180,7 +2144,7 @@ static HELP_ABOUT_MULTI_SC_OVERRIDE: &str = "myapp-subcmd-multi 1.0
|
||||||
USAGE:
|
USAGE:
|
||||||
myapp subcmd multi
|
myapp subcmd multi
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print custom help about text from multi
|
-h, --help Print custom help about text from multi
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -2288,7 +2252,7 @@ ARGS:
|
||||||
<pos1>
|
<pos1>
|
||||||
<pos2>
|
<pos2>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
--option1
|
--option1
|
||||||
";
|
";
|
||||||
|
@ -2312,69 +2276,6 @@ FLAGS:
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ONLY_CUSTOM_HEADING_FLAGS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [FLAGS] [OPTIONS]
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--speed <speed> How fast
|
|
||||||
|
|
||||||
NETWORKING:
|
|
||||||
--flag Some flag
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn only_custom_heading_flags() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.setting(AppSettings::DisableVersionFlag)
|
|
||||||
.mut_arg("help", |a| a.hidden(true))
|
|
||||||
.arg(
|
|
||||||
Arg::new("speed")
|
|
||||||
.long("speed")
|
|
||||||
.takes_value(true)
|
|
||||||
.about("How fast"),
|
|
||||||
)
|
|
||||||
.help_heading("NETWORKING")
|
|
||||||
.arg(Arg::new("flag").long("flag").about("Some flag"));
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
ONLY_CUSTOM_HEADING_FLAGS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static ONLY_CUSTOM_HEADING_OPTS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [OPTIONS]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
NETWORKING:
|
|
||||||
-s, --speed <SPEED> How fast
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn only_custom_heading_opts() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.help_heading("NETWORKING")
|
|
||||||
.arg(Arg::from("-s, --speed [SPEED] 'How fast'"));
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
ONLY_CUSTOM_HEADING_OPTS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static CUSTOM_HEADING_POS: &str = "test 1.4
|
static CUSTOM_HEADING_POS: &str = "test 1.4
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
@ -2383,7 +2284,7 @@ USAGE:
|
||||||
ARGS:
|
ARGS:
|
||||||
<gear> Which gear
|
<gear> Which gear
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -2407,60 +2308,6 @@ fn custom_heading_pos() {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static ONLY_CUSTOM_HEADING_POS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [speed]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
NETWORKING:
|
|
||||||
<speed> How fast
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn only_custom_heading_pos() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.help_heading("NETWORKING")
|
|
||||||
.arg(Arg::new("speed").about("How fast"));
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
ONLY_CUSTOM_HEADING_POS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static ONLY_CUSTOM_HEADING_FLAGS_NO_ARGS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [FLAGS]
|
|
||||||
|
|
||||||
NETWORKING:
|
|
||||||
--flag Some flag
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn only_custom_heading_flags_no_args() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.setting(AppSettings::DisableVersionFlag)
|
|
||||||
.mut_arg("help", |a| a.hidden(true))
|
|
||||||
.help_heading("NETWORKING")
|
|
||||||
.arg(Arg::new("flag").long("flag").about("Some flag"));
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
ONLY_CUSTOM_HEADING_FLAGS_NO_ARGS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static ONLY_CUSTOM_HEADING_OPTS_NO_ARGS: &str = "test 1.4
|
static ONLY_CUSTOM_HEADING_OPTS_NO_ARGS: &str = "test 1.4
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
@ -2531,10 +2378,8 @@ fn issue_2508_number_of_values_with_single_value_name() {
|
||||||
USAGE:
|
USAGE:
|
||||||
my_app [OPTIONS]
|
my_app [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-h, --help Print help information
|
||||||
--some_arg <some_arg> <some_arg>
|
--some_arg <some_arg> <some_arg>
|
||||||
--some_arg_issue <ARG> <ARG>
|
--some_arg_issue <ARG> <ARG>
|
||||||
",
|
",
|
||||||
|
@ -2560,7 +2405,7 @@ ARGS:
|
||||||
<arg1>
|
<arg1>
|
||||||
<arg2>
|
<arg2>
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
",
|
",
|
||||||
false
|
false
|
||||||
|
@ -2587,7 +2432,7 @@ ARGS:
|
||||||
<bar>
|
<bar>
|
||||||
<baz>...
|
<baz>...
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
",
|
",
|
||||||
false
|
false
|
||||||
|
|
|
@ -11,12 +11,10 @@ static HIDE_ENV: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café.
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café.
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static SHOW_ENV: &str = "ctest 0.1
|
static SHOW_ENV: &str = "ctest 0.1
|
||||||
|
@ -24,12 +22,10 @@ static SHOW_ENV: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static HIDE_ENV_VALS: &str = "ctest 0.1
|
static HIDE_ENV_VALS: &str = "ctest 0.1
|
||||||
|
@ -37,12 +33,10 @@ static HIDE_ENV_VALS: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR]
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static SHOW_ENV_VALS: &str = "ctest 0.1
|
static SHOW_ENV_VALS: &str = "ctest 0.1
|
||||||
|
@ -50,20 +44,18 @@ static SHOW_ENV_VALS: &str = "ctest 0.1
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [OPTIONS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
||||||
|
-h, --help Print help information
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
static HIDE_ENV_FLAG: &str = "ctest 0.1
|
static HIDE_ENV_FLAG: &str = "ctest 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [FLAGS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --cafe A coffeehouse, coffee shop, or café.
|
-c, --cafe A coffeehouse, coffee shop, or café.
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
@ -72,9 +64,9 @@ FLAGS:
|
||||||
static SHOW_ENV_FLAG: &str = "ctest 0.1
|
static SHOW_ENV_FLAG: &str = "ctest 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [FLAGS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
@ -83,9 +75,9 @@ FLAGS:
|
||||||
static HIDE_ENV_VALS_FLAG: &str = "ctest 0.1
|
static HIDE_ENV_VALS_FLAG: &str = "ctest 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [FLAGS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR]
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR]
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
@ -94,9 +86,9 @@ FLAGS:
|
||||||
static SHOW_ENV_VALS_FLAG: &str = "ctest 0.1
|
static SHOW_ENV_VALS_FLAG: &str = "ctest 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
ctest [FLAGS]
|
ctest [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
|
@ -9,15 +9,13 @@ Kevin K.
|
||||||
tests stuff
|
tests stuff
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS] [OPTIONS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
-F, --flag2 some other flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
|
-F, --flag2 some other flag
|
||||||
|
-h, --help Print help information
|
||||||
--option <opt> some option
|
--option <opt> some option
|
||||||
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -47,9 +45,9 @@ Steve P.
|
||||||
hides short args
|
hides short args
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-v, --visible This text should be visible
|
-v, --visible This text should be visible
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
@ -62,9 +60,9 @@ Steve P.
|
||||||
hides short args
|
hides short args
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --config
|
-c, --config
|
||||||
Some help text describing the --config arg
|
Some help text describing the --config arg
|
||||||
|
|
||||||
|
@ -139,9 +137,9 @@ Steve P.
|
||||||
hides long args
|
hides long args
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help
|
-h, --help
|
||||||
Print help information
|
Print help information
|
||||||
|
|
||||||
|
@ -185,9 +183,9 @@ Steve P.
|
||||||
hides long args
|
hides long args
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
test [FLAGS]
|
test [OPTIONS]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-c, --config Some help text describing the --config arg
|
-c, --config Some help text describing the --config arg
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-v, --visible This text should be visible
|
-v, --visible This text should be visible
|
||||||
|
@ -220,57 +218,6 @@ fn hidden_long_args_short_help() {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static HIDDEN_FLAG_ARGS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [OPTIONS]
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--option <opt> some option
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn hidden_flag_args() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.mut_arg("help", |a| a.hidden(true))
|
|
||||||
.mut_arg("version", |a| a.hidden(true))
|
|
||||||
.args(&[Arg::from("--option [opt] 'some option'")]);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
HIDDEN_FLAG_ARGS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static HIDDEN_OPT_ARGS: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test [FLAGS]
|
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
--flag some flag
|
|
||||||
-h, --help Print help information
|
|
||||||
-V, --version Print version information
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn hidden_opt_args() {
|
|
||||||
let app = App::new("test").version("1.4").args(&[
|
|
||||||
Arg::from("--flag 'some flag'"),
|
|
||||||
Arg::from("--option [opt] 'some option'").hidden(true),
|
|
||||||
]);
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
HIDDEN_OPT_ARGS,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static HIDDEN_POS_ARGS: &str = "test 1.4
|
static HIDDEN_POS_ARGS: &str = "test 1.4
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
@ -279,7 +226,7 @@ USAGE:
|
||||||
ARGS:
|
ARGS:
|
||||||
<another> another pos
|
<another> another pos
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -304,7 +251,7 @@ static HIDDEN_SUBCMDS: &str = "test 1.4
|
||||||
USAGE:
|
USAGE:
|
||||||
test
|
test
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
";
|
";
|
||||||
|
@ -323,30 +270,6 @@ fn hidden_subcmds() {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static HIDDEN_FLAG_ARGS_ONLY: &str = "test 1.4
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
test
|
|
||||||
|
|
||||||
After help
|
|
||||||
";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn hidden_flag_args_only() {
|
|
||||||
let app = App::new("test")
|
|
||||||
.version("1.4")
|
|
||||||
.after_help("After help")
|
|
||||||
.mut_arg("help", |a| a.hidden(true))
|
|
||||||
.mut_arg("version", |a| a.hidden(true));
|
|
||||||
|
|
||||||
assert!(utils::compare_output(
|
|
||||||
app,
|
|
||||||
"test --help",
|
|
||||||
HIDDEN_FLAG_ARGS_ONLY,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
static HIDDEN_OPT_ARGS_ONLY: &str = "test 1.4
|
static HIDDEN_OPT_ARGS_ONLY: &str = "test 1.4
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
|
|
|
@ -7,17 +7,15 @@ use clap::ErrorKind;
|
||||||
static LITERALS: &str = "clap-tests 0.1
|
static LITERALS: &str = "clap-tests 0.1
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-tests [FLAGS] [OPTIONS] [SUBCOMMAND]
|
clap-tests [OPTIONS] [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-4, --4 Sets priority to 4
|
-4, --4 Sets priority to 4
|
||||||
-5, --5 Sets priority to 5
|
-5, --5 Sets priority to 5
|
||||||
-6, --6 Sets priority to 6
|
-6, --6 Sets priority to 6
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-t, --task-num <task-num> Task number [possible values: all, 0, 1, 2]
|
-t, --task-num <task-num> Task number [possible values: all, 0, 1, 2]
|
||||||
|
-V, --version Print version information
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
0 Set everything to zero priority
|
0 Set everything to zero priority
|
||||||
|
@ -32,7 +30,7 @@ fn basic() {
|
||||||
(version: "0.1")
|
(version: "0.1")
|
||||||
(about: "tests clap library")
|
(about: "tests clap library")
|
||||||
(author: "Kevin K. <kbknapp@gmail.com>")
|
(author: "Kevin K. <kbknapp@gmail.com>")
|
||||||
(@global_setting UnifiedHelpMessage)
|
(@global_setting AllowNegativeNumbers)
|
||||||
(@arg opt: -o --option +takes_value ... "tests options")
|
(@arg opt: -o --option +takes_value ... "tests options")
|
||||||
(@arg positional: index(1) "tests positionals")
|
(@arg positional: index(1) "tests positionals")
|
||||||
(@arg flag: -f --flag ... +global "tests flags")
|
(@arg flag: -f --flag ... +global "tests flags")
|
||||||
|
|
|
@ -7,7 +7,7 @@ static VISIBLE_ALIAS_HELP: &str = "clap-test 2.6
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test [SUBCOMMAND]
|
clap-test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ static INVISIBLE_ALIAS_HELP: &str = "clap-test 2.6
|
||||||
USAGE:
|
USAGE:
|
||||||
clap-test [SUBCOMMAND]
|
clap-test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ static SUBCMD_ALPHA_ORDER: &str = "test 1
|
||||||
USAGE:
|
USAGE:
|
||||||
test [SUBCOMMAND]
|
test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ static SUBCMD_DECL_ORDER: &str = "test 1
|
||||||
USAGE:
|
USAGE:
|
||||||
test [SUBCOMMAND]
|
test [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ static EXAMPLE1_TMPS_F: &str = "{bin} {version}
|
||||||
USAGE:
|
USAGE:
|
||||||
{usage}
|
{usage}
|
||||||
|
|
||||||
FLAGS:
|
|
||||||
{flags}
|
|
||||||
OPTIONS:
|
OPTIONS:
|
||||||
{options}
|
{options}
|
||||||
ARGS:
|
ARGS:
|
||||||
|
@ -32,14 +30,13 @@ Kevin K. <kbknapp@gmail.com>
|
||||||
Does awesome things
|
Does awesome things
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
MyApp [FLAGS] [OPTIONS] <output> [SUBCOMMAND]
|
MyApp [OPTIONS] <output> [SUBCOMMAND]
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
|
-c, --config <FILE> Sets a custom config file
|
||||||
-d Turn debugging information on
|
-d Turn debugging information on
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
OPTIONS:
|
|
||||||
-c, --config <FILE> Sets a custom config file
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<output> Sets an optional output file
|
<output> Sets an optional output file
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
|
@ -52,19 +49,17 @@ Kevin K. <kbknapp@gmail.com>
|
||||||
Does awesome things
|
Does awesome things
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
MyApp [FLAGS] [OPTIONS] <output> [SUBCOMMAND]
|
MyApp [OPTIONS] <output> [SUBCOMMAND]
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<output> Sets an optional output file
|
<output> Sets an optional output file
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
|
-c, --config <FILE> Sets a custom config file
|
||||||
-d Turn debugging information on
|
-d Turn debugging information on
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print version information
|
-V, --version Print version information
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
-c, --config <FILE> Sets a custom config file
|
|
||||||
|
|
||||||
SUBCOMMANDS:
|
SUBCOMMANDS:
|
||||||
help Print this message or the help of the given subcommand(s)
|
help Print this message or the help of the given subcommand(s)
|
||||||
test does testing things
|
test does testing things
|
||||||
|
|
|
@ -16,13 +16,15 @@ where
|
||||||
// Strip out any mismatching \r character on windows that might sneak in on either side
|
// Strip out any mismatching \r character on windows that might sneak in on either side
|
||||||
let ls = l.as_ref().replace("\r", "");
|
let ls = l.as_ref().replace("\r", "");
|
||||||
let rs = r.as_ref().replace("\r", "");
|
let rs = r.as_ref().replace("\r", "");
|
||||||
let left = re.replace_all(&*ls, "");
|
let left_ = re.replace_all(&*ls, "");
|
||||||
let right = re.replace_all(&*rs, "");
|
let right = re.replace_all(&*rs, "");
|
||||||
let b = left == right;
|
let b = left_ == right;
|
||||||
if !b {
|
if !b {
|
||||||
|
dbg!(&left_);
|
||||||
|
dbg!(&right);
|
||||||
println!();
|
println!();
|
||||||
println!("--> left");
|
println!("--> left");
|
||||||
println!("{}", left);
|
println!("{}", left_);
|
||||||
println!("--> right");
|
println!("--> right");
|
||||||
println!("{}", right);
|
println!("{}", right);
|
||||||
println!("--")
|
println!("--")
|
||||||
|
|
|
@ -151,7 +151,7 @@ static VERSION_ABOUT_MULTI_SC: &str = "foo-bar-baz 3.0
|
||||||
USAGE:
|
USAGE:
|
||||||
foo bar baz
|
foo bar baz
|
||||||
|
|
||||||
FLAGS:
|
OPTIONS:
|
||||||
-h, --help Print help information
|
-h, --help Print help information
|
||||||
-V, --version Print custom version about text
|
-V, --version Print custom version about text
|
||||||
";
|
";
|
||||||
|
|
|
@ -25,8 +25,9 @@ fn help_message() {
|
||||||
let mut help_buffer = Vec::new();
|
let mut help_buffer = Vec::new();
|
||||||
app.write_help(&mut help_buffer).unwrap();
|
app.write_help(&mut help_buffer).unwrap();
|
||||||
let help_string = String::from_utf8(help_buffer).unwrap();
|
let help_string = String::from_utf8(help_buffer).unwrap();
|
||||||
|
println!("{}", help_string);
|
||||||
assert!(help_string
|
assert!(help_string
|
||||||
.contains("-h, --help prints help with a nonstandard description\n"));
|
.contains("-h, --help\n prints help with a nonstandard description\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
Loading…
Reference in a new issue