xtask/cli/
mod.rs

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}