| 1 | //! **clap-cargo**: Re-usable CLI flags for `cargo` plugins |
| 2 | //! |
| 3 | //! ## Install |
| 4 | //! |
| 5 | //! Add to your `Cargo.toml`: |
| 6 | //! |
| 7 | //! ```toml |
| 8 | //! [dependencies] |
| 9 | //! clap-cargo = "0.1" |
| 10 | //! ``` |
| 11 | //! |
| 12 | //! ## Examples |
| 13 | //! |
| 14 | //! ```rust |
| 15 | //! # #[cfg (feature = "clap" )] { |
| 16 | //! // ... |
| 17 | //! #[derive(Debug, clap::Parser)] |
| 18 | //! struct Cli { |
| 19 | //! #[command(flatten)] |
| 20 | //! manifest: clap_cargo::Manifest, |
| 21 | //! #[command(flatten)] |
| 22 | //! workspace: clap_cargo::Workspace, |
| 23 | //! #[command(flatten)] |
| 24 | //! features: clap_cargo::Features, |
| 25 | //! } |
| 26 | //! # } |
| 27 | //! ``` |
| 28 | //! |
| 29 | //! ## Relevant crates |
| 30 | //! |
| 31 | //! Other crates that might be useful for cargo plugins: |
| 32 | //! * [escargot][escargot] for wrapping `cargo-build`, `carg-run`, `cargo-test`, etc. |
| 33 | //! * [cargo_metadata][cargo_metadata] for getting crate information. |
| 34 | //! * [clap-verbosity][clap-verbosity] for adding logging to your CLI. |
| 35 | //! |
| 36 | //! [escargot]: https://crates.io/crates/escargot |
| 37 | //! [cargo_metadata]: https://crates.io/crates/cargo_metadata |
| 38 | //! [clap-verbosity]: https://crates.io/crates/clap-verbosity-flag |
| 39 | |
| 40 | #![cfg_attr (docsrs, feature(doc_auto_cfg))] |
| 41 | #![warn (missing_debug_implementations)] |
| 42 | #![warn (unused_extern_crates)] |
| 43 | |
| 44 | mod features; |
| 45 | mod manifest; |
| 46 | mod workspace; |
| 47 | |
| 48 | pub mod style; |
| 49 | |
| 50 | pub use features::*; |
| 51 | pub use manifest::*; |
| 52 | pub use workspace::*; |
| 53 | |