From b8d21abe441f86e7f18d13e8b13323a190b0b746 Mon Sep 17 00:00:00 2001 From: Noah Citron Date: Fri, 9 Sep 2022 18:14:17 -0400 Subject: [PATCH] feat: improve cli (#16) * use default_value for flags * add checkpoint flag --- Cargo.lock | 1 + cli/Cargo.toml | 2 +- cli/src/main.rs | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 025e629..6bca21e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1936,6 +1936,7 @@ version = "0.1.0" dependencies = [ "clap", "client", + "common", "config", "dirs", "env_logger", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index c654aad..9c067be 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -13,4 +13,4 @@ log = "0.4.17" client = { path = "../client" } config = { path = "../config" } - +common = { path = "../common" } diff --git a/cli/src/main.rs b/cli/src/main.rs index fd18cd5..f0c356d 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -1,6 +1,7 @@ use std::{sync::Arc, time::Duration}; use clap::Parser; +use common::utils::hex_str_to_bytes; use dirs::home_dir; use env_logger::Env; use eyre::Result; @@ -14,7 +15,7 @@ async fn main() -> Result<()> { env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); let cli = Cli::parse(); - let config = match cli.network.as_str() { + let mut config = match cli.network.as_str() { "goerli" => networks::goerli(), _ => { let home = home_dir().unwrap(); @@ -23,12 +24,16 @@ async fn main() -> Result<()> { } }; + if let Some(checkpoint) = cli.checkpoint { + config.general.checkpoint = hex_str_to_bytes(&checkpoint)?; + } + let mut client = Client::new(Arc::new(config)).await?; client.sync().await?; let client = Arc::new(Mutex::new(client)); - let mut rpc = Rpc::new(client.clone(), cli.port.unwrap_or(8545)); + let mut rpc = Rpc::new(client.clone(), cli.port); rpc.start().await?; loop { @@ -39,8 +44,10 @@ async fn main() -> Result<()> { #[derive(Parser)] struct Cli { - #[clap(long)] + #[clap(short, long, default_value = "goerli")] network: String, - #[clap(long)] - port: Option, + #[clap(short, long, default_value = "8545")] + port: u16, + #[clap(short, long)] + checkpoint: Option, }