Skip to content

Commit c12b670

Browse files
committed
Use the cargo cli style
1 parent db1dbab commit c12b670

File tree

6 files changed

+34
-32
lines changed

6 files changed

+34
-32
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ cargo = "0.82.0"
3232
cargo-util = "0.2"
3333
semver = "1.0.3"
3434
log = "0.4"
35-
clap = { version = "4.0.29", features = ["color", "derive", "cargo", "string"] }
35+
clap = { version = "4.5.18", features = ["color", "derive", "cargo", "string", "wrap_help"] }
3636
regex = "1.5.6"
3737
cbindgen = { version="0.27.0", default-features=false }
3838
toml = "0.8"

src/bin/capi.rs

+9-12
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@ fn main() -> CliResult {
1616
let cli_install = subcommand_install("install", "Install the crate C-API");
1717
let cli_test = subcommand_test("test");
1818

19-
let mut app = clap::command!()
20-
.dont_collapse_args_in_usage(true)
21-
.allow_external_subcommands(true)
22-
.subcommand(
23-
Command::new("capi")
24-
.allow_external_subcommands(true)
25-
.about("Build or install the crate C-API")
26-
.arg(flag("version", "Print version info and exit").short('V'))
27-
.subcommand(cli_build)
28-
.subcommand(cli_install)
29-
.subcommand(cli_test),
30-
);
19+
let mut app = main_cli().subcommand(
20+
Command::new("capi")
21+
.allow_external_subcommands(true)
22+
.about("Build or install the crate C-API")
23+
.arg(flag("version", "Print version info and exit").short('V'))
24+
.subcommand(cli_build)
25+
.subcommand(cli_install)
26+
.subcommand(cli_test),
27+
);
3128

3229
let args = app.clone().get_matches();
3330

src/bin/cbuild.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,14 @@ use cargo::CliResult;
33
use cargo::GlobalContext;
44

55
use cargo_c::build::*;
6-
use cargo_c::cli::run_cargo_fallback;
7-
use cargo_c::cli::subcommand_build;
6+
use cargo_c::cli::{main_cli, run_cargo_fallback, subcommand_build};
87
use cargo_c::config::*;
98

109
fn main() -> CliResult {
1110
let mut config = GlobalContext::default()?;
1211

1312
let subcommand = subcommand_build("cbuild", "Build the crate C-API");
14-
let mut app = clap::command!()
15-
.dont_collapse_args_in_usage(true)
16-
.allow_external_subcommands(true)
17-
.subcommand(subcommand);
13+
let mut app = main_cli().subcommand(subcommand);
1814

1915
let args = app.clone().get_matches();
2016

src/bin/cinstall.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@ use cargo::CliResult;
33
use cargo::GlobalContext;
44

55
use cargo_c::build::cbuild;
6-
use cargo_c::cli::run_cargo_fallback;
7-
use cargo_c::cli::subcommand_install;
6+
use cargo_c::cli::{main_cli, run_cargo_fallback, subcommand_install};
87
use cargo_c::config::global_context_configure;
98
use cargo_c::install::cinstall;
109

1110
fn main() -> CliResult {
1211
let mut config = GlobalContext::default()?;
1312

1413
let subcommand = subcommand_install("cinstall", "Install the crate C-API");
15-
let mut app = clap::command!()
16-
.dont_collapse_args_in_usage(true)
17-
.allow_external_subcommands(true)
18-
.subcommand(subcommand);
14+
let mut app = main_cli().subcommand(subcommand);
1915

2016
let args = app.clone().get_matches();
2117

src/bin/ctest.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
use cargo::util::command_prelude::*;
22

33
use cargo_c::build::*;
4-
use cargo_c::cli::run_cargo_fallback;
5-
use cargo_c::cli::subcommand_test;
4+
use cargo_c::cli::{main_cli, run_cargo_fallback, subcommand_test};
65
use cargo_c::config::*;
76

87
fn main() -> CliResult {
98
let mut config = GlobalContext::default()?;
109

1110
let subcommand = subcommand_test("ctest");
1211

13-
let mut app = clap::command!()
14-
.dont_collapse_args_in_usage(true)
15-
.allow_external_subcommands(true)
16-
.subcommand(subcommand);
12+
let mut app = main_cli().subcommand(subcommand);
1713

1814
let args = app.clone().get_matches();
1915

src/cli.rs

+18-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::path::PathBuf;
33

44
use cargo::util::command_prelude::CommandExt;
55
use cargo::util::command_prelude::{flag, multi_opt, opt};
6-
use cargo::util::{CliError, CliResult};
6+
use cargo::util::{style, CliError, CliResult};
77

88
use cargo_util::{ProcessBuilder, ProcessError};
99

@@ -57,6 +57,23 @@ struct Common {
5757
meson: bool,
5858
}
5959

60+
pub fn main_cli() -> Command {
61+
let styles = {
62+
clap::builder::styling::Styles::styled()
63+
.header(style::HEADER)
64+
.usage(style::USAGE)
65+
.literal(style::LITERAL)
66+
.placeholder(style::PLACEHOLDER)
67+
.error(style::ERROR)
68+
.valid(style::VALID)
69+
.invalid(style::INVALID)
70+
};
71+
clap::command!()
72+
.dont_collapse_args_in_usage(true)
73+
.allow_external_subcommands(true)
74+
.styles(styles)
75+
}
76+
6077
fn base_cli() -> Command {
6178
let default_target = Target::new::<&str>(None, false);
6279
let app = Common::command()

0 commit comments

Comments
 (0)