Ny crate `tools/synops-common` samler duplisert kode som var
spredt over 13 CLI-verktøy:
- db::connect() — PG-pool fra DATABASE_URL (erstatter 10+ identiske blokker)
- cas::path() — CAS-stioppslag med to-nivå hash-katalog
- cas::root() — CAS_ROOT env med default
- cas::hash_bytes() / hash_file() / store() — SHA-256 hashing og lagring
- cas::mime_to_extension() — MIME → filendelse
- logging::init() — tracing til stderr med env-filter
- types::{NodeRow, EdgeRow, NodeSummary} — delte FromRow-structs
Alle verktøy (unntatt synops-tasks som ikke bruker DB) er refaktorert
til å bruke synops-common. Alle kompilerer og tester passerer.
23 lines
884 B
Rust
23 lines
884 B
Rust
//! Standardisert tracing-oppsett for CLI-verktøy.
|
|
//!
|
|
//! Alle CLI-verktøy logger til stderr med env-filter.
|
|
//! RUST_LOG styrer nivå; uten den brukes `{crate_name}=info`.
|
|
|
|
/// Initialiser tracing med standard oppsett for et CLI-verktøy.
|
|
///
|
|
/// - Output til stderr (stdout er reservert for verktøyets resultat)
|
|
/// - Env-filter fra RUST_LOG, fallback til `{crate_filter}=info`
|
|
/// - Uten target-prefix (kortere linjer)
|
|
///
|
|
/// `crate_filter` bør være crate-navnet med bindestreker erstattet
|
|
/// med understreker, f.eks. `"synops_audio"`.
|
|
pub fn init(crate_filter: &str) {
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter(
|
|
tracing_subscriber::EnvFilter::try_from_default_env()
|
|
.unwrap_or_else(|_| format!("{crate_filter}=info").parse().unwrap()),
|
|
)
|
|
.with_target(false)
|
|
.with_writer(std::io::stderr)
|
|
.init();
|
|
}
|