1use clap::{Parser, Subcommand};
2
3pub(crate) mod devtools_test;
4pub(crate) mod r_cmd_check;
5
6use devtools_test::DevtoolsTestArg;
7use r_cmd_check::RCmdCheckArg;
8
9#[derive(Parser, Debug)]
10#[command(author, version, about, long_about = None)]
11pub(crate) struct Cli {
12 #[command(subcommand)]
13 pub(crate) command: Commands,
14}
15
16#[derive(Subcommand, Debug)]
17pub(crate) enum Commands {
18 #[command(about = "Run cargo fmt on extendr")]
19 CheckFmt,
20 #[command(about = "Run `cargo fmt` on extendr crates")]
21 Fmt,
22 #[command(about = "Run R CMD check on {extendrtests}")]
23 RCmdCheck(RCmdCheckArg),
24 #[command(about = "Generate documentation for all features")]
25 Doc,
26 #[command(about = "Check that the specified rust-version is MSRV")]
27 Msrv,
28 #[command(about = "Run devtools::test() on {extendrtests} and generate snapshots")]
29 DevtoolsTest(DevtoolsTestArg),
30 #[command(about = "Generate wrappers by `rextendr::document()`")]
31 Document,
32}
33
34pub(crate) fn parse() -> Cli {
35 Cli::parse()
36}