use std::prelude::v1::*;
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(version, about)]
pub struct CliArgs {
#[command(subcommand)]
pub command: Command,
#[arg(long, global = true)]
pub catalog_path: Option<String>,
#[arg(long, global = true)]
pub params_path: Option<String>,
}
#[derive(Subcommand)]
pub enum Command {
Run {
#[arg(long)]
runner: Option<String>,
#[arg(long = "params", value_name = "KEY=VALUE")]
param_overrides: Vec<String>,
#[arg(long = "catalog", value_name = "KEY=VALUE")]
catalog_overrides: Vec<String>,
#[arg(long, value_delimiter = ',', conflicts_with_all = ["from_nodes", "to_nodes"])]
nodes: Vec<String>,
#[arg(long, value_delimiter = ',', conflicts_with = "nodes")]
from_nodes: Vec<String>,
#[arg(long, value_delimiter = ',', conflicts_with = "nodes")]
to_nodes: Vec<String>,
},
Check,
Viz {
#[arg(long, default_value = "8080")]
port: u16,
#[arg(long)]
output: Option<String>,
#[arg(long)]
export: Option<String>,
},
}