anvil/
opts.rs

1use crate::cmd::NodeArgs;
2use clap::{Parser, Subcommand};
3use foundry_cli::opts::GlobalArgs;
4use foundry_common::version::{LONG_VERSION, SHORT_VERSION};
5
6/// A fast local Ethereum development node.
7#[derive(Parser)]
8#[command(name = "anvil", version = SHORT_VERSION, long_version = LONG_VERSION, next_display_order = None)]
9pub struct Anvil {
10    /// Include the global arguments.
11    #[command(flatten)]
12    pub global: GlobalArgs,
13
14    #[command(flatten)]
15    pub node: NodeArgs,
16
17    #[command(subcommand)]
18    pub cmd: Option<AnvilSubcommand>,
19}
20
21#[derive(Subcommand)]
22pub enum AnvilSubcommand {
23    /// Generate shell completions script.
24    #[command(visible_alias = "com")]
25    Completions {
26        #[arg(value_enum)]
27        shell: clap_complete::Shell,
28    },
29
30    /// Generate Fig autocompletion spec.
31    #[command(visible_alias = "fig")]
32    GenerateFigSpec,
33}