global: snapshot

This commit is contained in:
nym21
2026-01-17 02:34:08 +01:00
parent 6bb1a2a311
commit 7b3e172948
25 changed files with 1070 additions and 1173 deletions
+3 -3
View File
@@ -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()
}
+7 -16
View File
@@ -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();
+3 -3
View File
@@ -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> {