J.A.R.V.I.S-rust/crates/jarvis-core/src/lib.rs

59 lines
1.4 KiB
Rust
Raw Normal View History

use once_cell::sync::{Lazy, OnceCell};
2026-01-04 09:00:51 +05:00
use parking_lot::RwLock;
use std::{sync::Arc};
use platform_dirs::AppDirs;
use std::path::PathBuf;
#[macro_use]
extern crate log;
pub mod time;
pub mod audio;
pub mod commands;
pub mod config;
pub mod db;
pub mod i18n;
2026-01-04 09:00:51 +05:00
#[cfg(feature = "jarvis_app")]
pub mod listener;
2026-01-04 09:00:51 +05:00
pub mod recorder;
2026-01-04 09:00:51 +05:00
#[cfg(feature = "jarvis_app")]
pub mod stt;
2026-01-05 02:23:32 +05:00
#[cfg(feature = "intent")]
pub mod intent;
2026-01-05 03:38:04 +05:00
pub mod vosk_models;
#[cfg(feature = "jarvis_app")]
pub mod audio_processing;
#[cfg(feature = "jarvis_app")]
pub mod ipc;
pub mod voices;
// shared statics
2026-01-05 03:38:04 +05:00
// pub static APP_DIR: Lazy<PathBuf> = Lazy::new(|| std::env::current_dir().unwrap());
pub static APP_DIR: Lazy<PathBuf> = Lazy::new(|| {
std::env::current_exe()
.ok()
.and_then(|p| p.parent().map(|p| p.to_path_buf()))
.unwrap_or_else(|| std::env::current_dir().unwrap())
});
pub static SOUND_DIR: Lazy<PathBuf> = Lazy::new(|| APP_DIR.clone().join(config::SOUND_PATH));
pub static APP_DIRS: OnceCell<AppDirs> = OnceCell::new();
pub static APP_CONFIG_DIR: OnceCell<PathBuf> = OnceCell::new();
pub static APP_LOG_DIR: OnceCell<PathBuf> = OnceCell::new();
2026-01-04 09:00:51 +05:00
pub static DB: OnceCell<Arc<RwLock<db::structs::Settings>>> = OnceCell::new();
pub static COMMANDS_LIST: OnceCell<Vec<JCommandsList>> = OnceCell::new();
// re-exports
pub use commands::JCommandsList;
pub use config::structs::*;
pub use db::structs::Settings;
// use crate::commands::{JComandsList, JCommand};