mirror of
https://github.com/clap-rs/clap
synced 2024-12-15 07:12:32 +00:00
c90a4eabae
In looking at other help output, I noticed that they use two spaces, in place of clap's 4, and it doesn't suffer from legibility. If it doesn't make the output worse, let's go ahead and make it as dense so we fit more content on the screen. This is a part of #4132
215 lines
5.3 KiB
Rust
215 lines
5.3 KiB
Rust
#![cfg(feature = "env")]
|
|
|
|
use std::env;
|
|
|
|
use clap::{Arg, ArgAction, Command};
|
|
|
|
use super::utils;
|
|
|
|
static HIDE_ENV: &str = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-c, --cafe <FILE> A coffeehouse, coffee shop, or café.
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
static SHOW_ENV: &str = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-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 = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-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 = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-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 = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-c, --cafe A coffeehouse, coffee shop, or café.
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
static SHOW_ENV_FLAG: &str = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
static HIDE_ENV_VALS_FLAG: &str = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR]
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
static SHOW_ENV_VALS_FLAG: &str = "\
|
|
Usage: ctest [OPTIONS]
|
|
|
|
Options:
|
|
-c, --cafe A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
|
|
-h, --help Print help information
|
|
-V, --version Print version information
|
|
";
|
|
|
|
#[test]
|
|
fn hide_env() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.value_name("FILE")
|
|
.hide_env(true)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café.")
|
|
.action(ArgAction::Set),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", HIDE_ENV, false);
|
|
}
|
|
|
|
#[test]
|
|
fn show_env() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.value_name("FILE")
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café.")
|
|
.action(ArgAction::Set),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", SHOW_ENV, false);
|
|
}
|
|
|
|
#[test]
|
|
fn hide_env_vals() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.value_name("FILE")
|
|
.hide_env_values(true)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café.")
|
|
.action(ArgAction::Set),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", HIDE_ENV_VALS, false);
|
|
}
|
|
|
|
#[test]
|
|
fn show_env_vals() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.value_name("FILE")
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café.")
|
|
.action(ArgAction::Set),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", SHOW_ENV_VALS, false);
|
|
}
|
|
|
|
#[test]
|
|
fn hide_env_flag() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.action(ArgAction::SetTrue)
|
|
.hide_env(true)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café."),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", HIDE_ENV_FLAG, false);
|
|
}
|
|
|
|
#[test]
|
|
fn show_env_flag() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.action(ArgAction::SetTrue)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café."),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", SHOW_ENV_FLAG, false);
|
|
}
|
|
|
|
#[test]
|
|
fn hide_env_vals_flag() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.action(ArgAction::SetTrue)
|
|
.hide_env_values(true)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café."),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", HIDE_ENV_VALS_FLAG, false);
|
|
}
|
|
|
|
#[test]
|
|
fn show_env_vals_flag() {
|
|
env::set_var("ENVVAR", "MYVAL");
|
|
|
|
let cmd = Command::new("ctest").version("0.1").arg(
|
|
Arg::new("cafe")
|
|
.short('c')
|
|
.long("cafe")
|
|
.action(ArgAction::SetTrue)
|
|
.env("ENVVAR")
|
|
.help("A coffeehouse, coffee shop, or café."),
|
|
);
|
|
|
|
utils::assert_output(cmd, "ctest --help", SHOW_ENV_VALS_FLAG, false);
|
|
}
|