mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-21 07:58:11 -07:00
global: snapshot
This commit is contained in:
@@ -9,7 +9,7 @@ use brk_rpc::{Auth, Client};
|
||||
use clap::Parser;
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
|
||||
use crate::{default_brk_path, dot_brk_path, fix_user_path, website::Website};
|
||||
use crate::{default_brk_path, dot_brk_path, fix_user_path, website::WebsiteArg};
|
||||
|
||||
#[derive(Parser, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)]
|
||||
#[command(version, about)]
|
||||
@@ -42,7 +42,7 @@ pub struct Config {
|
||||
/// Website served by the server: true (default), false, or PATH, saved
|
||||
#[serde(default, deserialize_with = "default_on_error")]
|
||||
#[arg(short, long, value_name = "BOOL|PATH")]
|
||||
website: Option<Website>,
|
||||
website: Option<WebsiteArg>,
|
||||
|
||||
/// Bitcoin RPC ip, default: localhost, saved
|
||||
#[serde(default, deserialize_with = "default_on_error")]
|
||||
@@ -258,7 +258,7 @@ Finally, you can run the program with '-h' for help."
|
||||
)
|
||||
}
|
||||
|
||||
pub fn website(&self) -> Website {
|
||||
pub fn website(&self) -> WebsiteArg {
|
||||
self.website.clone().unwrap_or_default()
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ use brk_iterator::Blocks;
|
||||
use brk_mempool::Mempool;
|
||||
use brk_query::AsyncQuery;
|
||||
use brk_reader::Reader;
|
||||
use brk_server::{Server, WebsiteSource};
|
||||
use brk_server::{Server, Website};
|
||||
use tracing::info;
|
||||
use vecdb::Exit;
|
||||
|
||||
@@ -22,7 +22,7 @@ mod config;
|
||||
mod paths;
|
||||
mod website;
|
||||
|
||||
use crate::{config::Config, paths::*, website::Website};
|
||||
use crate::{config::Config, paths::*, website::WebsiteArg};
|
||||
|
||||
pub fn main() -> color_eyre::Result<()> {
|
||||
// Can't increase main thread's stack size, thus we need to use another thread
|
||||
@@ -66,23 +66,14 @@ pub fn run() -> color_eyre::Result<()> {
|
||||
|
||||
let data_path = config.brkdir();
|
||||
|
||||
let website_source = match config.website() {
|
||||
Website::Enabled(false) => {
|
||||
info!("Website: disabled");
|
||||
WebsiteSource::Disabled
|
||||
}
|
||||
Website::Path(p) => {
|
||||
info!("Website: filesystem ({})", p.display());
|
||||
WebsiteSource::Filesystem(p)
|
||||
}
|
||||
Website::Enabled(true) => {
|
||||
info!("Website: embedded");
|
||||
WebsiteSource::Embedded
|
||||
}
|
||||
let website = match config.website() {
|
||||
WebsiteArg::Enabled(false) => Website::Disabled,
|
||||
WebsiteArg::Enabled(true) => Website::Default,
|
||||
WebsiteArg::Path(p) => Website::Filesystem(p),
|
||||
};
|
||||
|
||||
let future = async move {
|
||||
let server = Server::new(&query, data_path, website_source);
|
||||
let server = Server::new(&query, data_path, website);
|
||||
|
||||
tokio::spawn(async move {
|
||||
server.serve().await.unwrap();
|
||||
|
||||
@@ -10,18 +10,18 @@ use crate::paths::fix_user_path;
|
||||
/// - `"/path/to/website"`: serve custom website from path
|
||||
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum Website {
|
||||
pub enum WebsiteArg {
|
||||
Enabled(bool),
|
||||
Path(PathBuf),
|
||||
}
|
||||
|
||||
impl Default for Website {
|
||||
impl Default for WebsiteArg {
|
||||
fn default() -> Self {
|
||||
Self::Enabled(true)
|
||||
}
|
||||
}
|
||||
|
||||
impl FromStr for Website {
|
||||
impl FromStr for WebsiteArg {
|
||||
type Err = std::convert::Infallible;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
|
||||
Reference in New Issue
Block a user