flams_system/lib.rs
1#![cfg_attr(docsrs, feature(doc_auto_cfg))]
2//#![feature(file_buffered)]
3//#![feature(lazy_type_alias)]
4
5pub mod backend;
6pub mod settings;
7#[cfg(feature="tokio")]
8pub mod logging;
9pub mod formats;
10pub mod building;
11#[cfg(feature="tantivy")]
12pub mod search;
13
14use building::queue_manager::QueueManager;
15use formats::FLAMSExtension;
16use settings::SettingsSpec;
17use backend::GlobalBackend;
18
19/// #### Panics
20pub fn initialize(settings: SettingsSpec) {
21 settings::Settings::initialize(settings);
22 let settings = settings::Settings::get();
23 if settings.lsp {
24 use tracing_subscriber::layer::SubscriberExt;
25 use tracing_subscriber::Layer;
26 use tracing::Level;
27 #[cfg(feature="tokio")]
28 let logger = logging::LogStore::new();
29 let debug = settings.debug;
30 let level = if debug {Level::TRACE} else {Level::INFO};
31
32 let l = tracing_subscriber::fmt::layer()
33 //.with_max_level(Level::INFO)//(if debug {Level::TRACE} else {Level::INFO})
34 .with_ansi(false)
35 .with_target(true)
36 .with_writer(std::io::stderr)
37 .with_filter(tracing::level_filters::LevelFilter::from(Level::INFO))
38 ;//.init();
39 #[cfg(feature="tokio")]
40 let sub = tracing_subscriber::registry()
41 .with(logger.with_filter(tracing::level_filters::LevelFilter::from(level)))
42 .with(l);
43 #[cfg(not(feature="tokio"))]
44 let sub = tracing_subscriber::registry().with(l);
45 tracing::subscriber::set_global_default(sub).expect(
46 "Failed to set global default logging subscriber"
47 );
48 } else {
49 #[cfg(feature="tokio")]
50 logging::LogStore::initialize();
51 }
52 tracing::info_span!(target:"initializing",parent:None,"initializing").in_scope(move || {
53 #[cfg(feature="gitlab")]
54 {
55 if let Some(url) = &settings.gitlab_url {
56 let cfg = flams_git::gl::GitlabConfig::new(
57 url.clone(),
58 settings.gitlab_token.as_ref().map(ToString::to_string),
59 settings.gitlab_app_id.as_ref().map(ToString::to_string),
60 settings.gitlab_app_secret.as_ref().map(ToString::to_string)
61 );
62 flams_git::gl::GLInstance::global().clone().load(cfg);
63 }
64 }
65 GlobalBackend::initialize();
66 QueueManager::initialize(settings.num_threads);
67 FLAMSExtension::initialize();
68 });
69}