This commit is contained in:
Mengran Lan
2024-05-30 23:37:58 +08:00
parent 1b20456928
commit 43505d4780
4 changed files with 98 additions and 9 deletions

59
prover_rust/Cargo.lock generated
View File

@@ -766,6 +766,46 @@ dependencies = [
"inout",
]
[[package]]
name = "clap"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
dependencies = [
"clap_builder",
"clap_derive",
]
[[package]]
name = "clap_builder"
version = "4.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim 0.11.1",
]
[[package]]
name = "clap_derive"
version = "4.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"syn 2.0.66",
]
[[package]]
name = "clap_lex"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
[[package]]
name = "coins-bip32"
version = "0.8.7"
@@ -1014,7 +1054,7 @@ dependencies = [
"ident_case",
"proc-macro2",
"quote",
"strsim",
"strsim 0.10.0",
"syn 1.0.109",
]
@@ -2135,6 +2175,12 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.3.9"
@@ -3381,6 +3427,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"base64 0.13.1",
"clap",
"env_logger 0.11.3",
"eth-keystore",
"ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)",
@@ -4497,6 +4544,12 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strsim"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.24.1"
@@ -4518,7 +4571,7 @@ version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck",
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
@@ -4531,7 +4584,7 @@ version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck",
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",

View File

@@ -42,3 +42,4 @@ tokio = "1.37.0"
env_logger = "0.11.3"
sled = "0.34.7"
http = "1.1.0"
clap = { version = "4.5", features = ["derive"] }

View File

@@ -10,6 +10,7 @@ mod utils;
mod version;
mod zk_circuits_handler;
use clap::{Parser, ArgAction};
use anyhow::Result;
use config::Config;
use prover::Prover;
@@ -17,13 +18,34 @@ use std::rc::Rc;
use task_cache::{ClearCacheCoordinatorListener, TaskCache};
use task_processor::TaskProcessor;
/// Simple program to greet a person
#[derive(Parser, Debug)]
#[clap(disable_version_flag = true)]
struct Args {
/// Path of config file
#[arg(long = "config", default_value = "conf/config.json")]
config_file: String,
/// Version of this prover
#[arg(short, long, action = ArgAction::SetTrue)]
version: bool,
/// Path of config file
#[arg(long = "log.file")]
log_file: Option<String>,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
utils::log_init();
let args = Args::parse();
let file_name = "config.json";
let config: Config = Config::from_file(file_name.to_string())?;
if args.version {
println!("version is {}", version::get_version());
std::process::exit(0);
}
println!("{:?}", config);
utils::log_init(args.log_file);
let config: Config = Config::from_file(args.config_file)?;
let task_cache = Rc::new(TaskCache::new(&config.db_path)?);

View File

@@ -1,11 +1,24 @@
use env_logger::Env;
use std::sync::Once;
use std::fs::OpenOptions;
static LOG_INIT: Once = Once::new();
/// Initialize log
pub fn log_init() {
pub fn log_init(log_file: Option<String>) {
LOG_INIT.call_once(|| {
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
let mut builder = env_logger::Builder::from_env(Env::default().default_filter_or("info"));
if let Some(file_path) = log_file {
let target= Box::new(
OpenOptions::new()
.write(true)
.create(true)
.truncate(false)
.open(file_path)
.expect("Can't create log file")
);
builder.target(env_logger::Target::Pipe(target));
}
builder.init();
});
}