0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 17:34:47 -05:00

chore: make deno --help more colorful (#21962)

This commit adds coloring to "--help" flag.

Before:
https://github.com/denoland/deno/assets/13602871/23753f95-3289-45bc-8a1e-842d0ccd92df

After:
https://github.com/denoland/deno/assets/13602871/91b035cc-f199-4cf4-a77c-f65b290b5e19
This commit is contained in:
Bartek Iwańczuk 2024-01-23 19:56:50 +01:00 committed by GitHub
parent d1eed9896f
commit cc05dc142d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 77 additions and 25 deletions

22
Cargo.lock generated
View file

@ -634,6 +634,27 @@ dependencies = [
"unicode-width", "unicode-width",
] ]
[[package]]
name = "color-print"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d"
dependencies = [
"color-print-proc-macro",
]
[[package]]
name = "color-print-proc-macro"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f"
dependencies = [
"nom 7.1.3",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "color_quant" name = "color_quant"
version = "1.1.0" version = "1.1.0"
@ -955,6 +976,7 @@ dependencies = [
"clap", "clap",
"clap_complete", "clap_complete",
"clap_complete_fig", "clap_complete_fig",
"color-print",
"console_static_text", "console_static_text",
"dashmap", "dashmap",
"data-encoding", "data-encoding",

View file

@ -79,6 +79,7 @@ chrono.workspace = true
clap = { version = "=4.4.17", features = ["env", "string"] } clap = { version = "=4.4.17", features = ["env", "string"] }
clap_complete = "=4.4.7" clap_complete = "=4.4.7"
clap_complete_fig = "=4.4.2" clap_complete_fig = "=4.4.2"
color-print = "0.3.5"
console_static_text.workspace = true console_static_text.workspace = true
dashmap = "5.5.3" dashmap = "5.5.3"
data-encoding.workspace = true data-encoding.workspace = true

View file

@ -1,5 +1,6 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use clap::builder::styling::AnsiColor;
use clap::builder::FalseyValueParser; use clap::builder::FalseyValueParser;
use clap::value_parser; use clap::value_parser;
use clap::Arg; use clap::Arg;
@ -806,61 +807,82 @@ impl Flags {
} }
} }
static ENV_VARIABLES_HELP: &str = r#"ENVIRONMENT VARIABLES: static ENV_VARIABLES_HELP: &str = color_print::cstr!(
DENO_AUTH_TOKENS A semi-colon separated list of bearer tokens and r#"<y>Environment variables:</>
<g>DENO_AUTH_TOKENS</> A semi-colon separated list of bearer tokens and
hostnames to use when fetching remote modules from hostnames to use when fetching remote modules from
private repositories private repositories
(e.g. "abcde12345@deno.land;54321edcba@github.com") (e.g. "abcde12345@deno.land;54321edcba@github.com")
DENO_TLS_CA_STORE Comma-separated list of order dependent certificate
<g>DENO_TLS_CA_STORE</> Comma-separated list of order dependent certificate
stores. Possible values: "system", "mozilla". stores. Possible values: "system", "mozilla".
Defaults to "mozilla". Defaults to "mozilla".
DENO_CERT Load certificate authority from PEM encoded file
DENO_DIR Set the cache directory <g>DENO_CERT</> Load certificate authority from PEM encoded file
DENO_INSTALL_ROOT Set deno install's output directory
<g>DENO_DIR</> Set the cache directory
<g>DENO_INSTALL_ROOT</> Set deno install's output directory
(defaults to $HOME/.deno/bin) (defaults to $HOME/.deno/bin)
DENO_REPL_HISTORY Set REPL history file path
<g>DENO_REPL_HISTORY</> Set REPL history file path
History file is disabled when the value is empty History file is disabled when the value is empty
(defaults to $DENO_DIR/deno_history.txt) (defaults to $DENO_DIR/deno_history.txt)
DENO_NO_PACKAGE_JSON Disables auto-resolution of package.json
DENO_NO_PROMPT Set to disable permission prompts on access <g>DENO_NO_PACKAGE_JSON</> Disables auto-resolution of package.json
<g>DENO_NO_PROMPT</> Set to disable permission prompts on access
(alternative to passing --no-prompt on invocation) (alternative to passing --no-prompt on invocation)
DENO_NO_UPDATE_CHECK Set to disable checking if a newer Deno version is
<g>DENO_NO_UPDATE_CHECK</> Set to disable checking if a newer Deno version is
available available
DENO_V8_FLAGS Set V8 command line options
DENO_WEBGPU_TRACE Directory to use for wgpu traces <g>DENO_V8_FLAGS</> Set V8 command line options
DENO_JOBS Number of parallel workers used for the --parallel
<g>DENO_WEBGPU_TRACE</> Directory to use for wgpu traces
<g>DENO_JOBS</> Number of parallel workers used for the --parallel
flag with the test subcommand. Defaults to number flag with the test subcommand. Defaults to number
of available CPUs. of available CPUs.
HTTP_PROXY Proxy address for HTTP requests
<g>HTTP_PROXY</> Proxy address for HTTP requests
(module downloads, fetch) (module downloads, fetch)
HTTPS_PROXY Proxy address for HTTPS requests
<g>HTTPS_PROXY</> Proxy address for HTTPS requests
(module downloads, fetch) (module downloads, fetch)
NPM_CONFIG_REGISTRY URL to use for the npm registry.
NO_COLOR Set to disable color <g>NPM_CONFIG_REGISTRY</> URL to use for the npm registry.
NO_PROXY Comma-separated list of hosts which do not use a proxy
(module downloads, fetch)"#; <g>NO_COLOR</> Set to disable color
<g>NO_PROXY</> Comma-separated list of hosts which do not use a proxy
(module downloads, fetch)"#
);
static DENO_HELP: &str = concat!( static DENO_HELP: &str = concat!(
"A modern JavaScript and TypeScript runtime color_print::cstr!("<g>A modern JavaScript and TypeScript runtime</>"),
"
Docs: https://deno.land/manual@v", Docs: https://deno.land/manual@v",
env!("CARGO_PKG_VERSION"), env!("CARGO_PKG_VERSION"),
color_print::cstr!(
" "
Modules: https://deno.land/std/ https://deno.land/x/ Modules: https://deno.land/std/ https://deno.land/x/
Bugs: https://github.com/denoland/deno/issues Bugs: https://github.com/denoland/deno/issues
To start the REPL: To start the REPL:
deno <g>deno</>
To execute a script: To execute a script:
deno run https://examples.deno.land/hello-world.ts <g>deno run https://examples.deno.land/hello-world.ts</>
To evaluate code in the shell: To evaluate code in the shell:
deno eval \"console.log(30933 + 404)\" <g>deno eval \"console.log(30933 + 404)\"</>
" "
)
); );
/// Main entry point for parsing deno's command line flags. /// Main entry point for parsing deno's command line flags.
@ -971,7 +993,14 @@ fn clap_root() -> Command {
let mut cmd = Command::new("deno") let mut cmd = Command::new("deno")
.bin_name("deno") .bin_name("deno")
.color(ColorChoice::Never) .styles(
clap::builder::Styles::styled()
.header(AnsiColor::Yellow.on_default())
.usage(AnsiColor::White.on_default())
.literal(AnsiColor::Green.on_default())
.placeholder(AnsiColor::Green.on_default())
)
.color(ColorChoice::Auto)
.max_term_width(80) .max_term_width(80)
.version(crate::version::deno()) .version(crate::version::deno())
.long_version(long_version) .long_version(long_version)