pop_chains/try_runtime/
state.rs1use std::path::PathBuf;
4use strum::{Display, EnumDiscriminants};
5use strum_macros::{AsRefStr, EnumMessage, EnumString, VariantArray};
6
7#[derive(Clone, Debug, clap::Subcommand, EnumDiscriminants)]
9#[strum_discriminants(derive(AsRefStr, EnumString, EnumMessage, VariantArray, Display))]
10#[strum_discriminants(name(StateCommand))]
11pub enum State {
12 #[strum_discriminants(strum(
14 serialize = "live",
15 message = "Live",
16 detailed_message = "Run the migrations on top of live state.",
17 ))]
18 Live(LiveState),
19
20 #[strum_discriminants(strum(
22 serialize = "snap",
23 message = "Snapshot",
24 detailed_message = "Run the migrations on top of a chain snapshot."
25 ))]
26 Snap {
27 #[clap(short = 'p', long = "path", alias = "snapshot-path")]
29 path: Option<PathBuf>,
30 },
31}
32
33#[derive(Debug, Default, Clone, clap::Args)]
35pub struct LiveState {
36 #[arg(
38 short,
39 long,
40 value_parser = super::parse::url,
41 )]
42 pub uri: Option<String>,
43
44 #[arg(
48 short,
49 long,
50 value_parser = super::parse::hash,
51 )]
52 pub at: Option<String>,
53
54 #[arg(short, long, num_args = 1..)]
59 pub pallet: Vec<String>,
60
61 #[arg(long = "prefix", value_parser = super::parse::hash, num_args = 1..)]
64 pub hashed_prefixes: Vec<String>,
65
66 #[arg(long)]
72 pub child_tree: bool,
73}