sui_cluster_test/
config.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use clap::*;
5use regex::Regex;
6use std::path::PathBuf;
7
8#[derive(Parser, Clone, ValueEnum, Debug)]
9pub enum Env {
10    Devnet,
11    Staging,
12    Ci,
13    CiNomad,
14    Testnet,
15    CustomRemote,
16    NewLocal,
17}
18
19#[derive(derive_more::Debug, Parser)]
20#[clap(name = "", rename_all = "kebab-case")]
21pub struct ClusterTestOpt {
22    #[clap(value_enum)]
23    pub env: Env,
24    #[clap(long)]
25    pub faucet_address: Option<String>,
26    #[clap(long)]
27    pub fullnode_address: Option<String>,
28    #[clap(long)]
29    pub epoch_duration_ms: Option<u64>,
30    /// URL for the indexer RPC server
31    #[clap(long)]
32    pub indexer_address: Option<String>,
33    /// URL for the Indexer Postgres DB
34    #[clap(long)]
35    #[debug("{}", match pg_address {
36        None => "None".into(),
37        Some(val) => Regex::new(r":.*@")
38            .unwrap()
39            .replace_all(val.as_str(), ":*****@"),
40    })]
41    pub pg_address: Option<String>,
42    #[clap(long)]
43    pub config_dir: Option<PathBuf>,
44    /// URL for the graphql RPC server
45    #[clap(long)]
46    pub graphql_address: Option<String>,
47}
48
49impl ClusterTestOpt {
50    pub fn new_local() -> Self {
51        Self {
52            env: Env::NewLocal,
53            faucet_address: None,
54            fullnode_address: None,
55            epoch_duration_ms: None,
56            indexer_address: None,
57            pg_address: None,
58            config_dir: None,
59            graphql_address: None,
60        }
61    }
62}