hoprd_localcluster/
cli.rs1use std::{path::PathBuf, str::FromStr};
2
3use clap::Parser;
4use hopr_primitive_types::prelude::HoprBalance;
5
6use crate::identity::{DEFAULT_CONFIG_HOME, DEFAULT_IDENTITY_PASSWORD, DEFAULT_NUM_NODES};
7
8#[derive(Parser, Debug)]
9#[command(
10 name = "hoprd-localcluster",
11 about = "Run a local HOPR cluster using external processes"
12)]
13pub struct Args {
14 #[arg(long, default_value_t = DEFAULT_NUM_NODES)]
16 pub size: usize,
17
18 #[arg(long, default_value = "1 wxHOPR", value_parser = HoprBalance::from_str)]
20 pub funding_amount: HoprBalance,
21
22 #[arg(long, default_value_t = false)]
24 pub skip_channels: bool,
25
26 #[arg(long, default_value = "localhost")]
28 pub api_host: String,
29
30 #[arg(long, default_value_t = 3000)]
32 pub api_port_base: u16,
33
34 #[arg(long, default_value = "localhost")]
36 pub p2p_host: String,
37
38 #[arg(long, default_value_t = 9000)]
40 pub p2p_port_base: u16,
41
42 #[arg(long, default_value = DEFAULT_CONFIG_HOME)]
44 pub data_dir: PathBuf,
45
46 #[arg(long, env = "HOPRD_CHAIN_IMAGE", required_unless_present = "chain_url")]
48 pub chain_image: Option<String>,
49
50 #[arg(long, env = "HOPRD_CHAIN_URL")]
52 pub chain_url: Option<String>,
53
54 #[arg(long, default_value = "hoprd")]
56 pub hoprd_bin: PathBuf,
57
58 #[arg(long, default_value = DEFAULT_IDENTITY_PASSWORD)]
60 pub identity_password: String,
61
62 #[arg(long)]
64 pub api_token: Option<String>,
65}