mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-07-04 13:02:57 +00:00
Refactored metadata initialization (#441)
This commit is contained in:
parent
b0d4615506
commit
437ea2c243
@ -10,39 +10,12 @@ use mindwork_ai_studio::certificate::{generate_certificate};
|
|||||||
use mindwork_ai_studio::dotnet::start_dotnet_server;
|
use mindwork_ai_studio::dotnet::start_dotnet_server;
|
||||||
use mindwork_ai_studio::environment::is_dev;
|
use mindwork_ai_studio::environment::is_dev;
|
||||||
use mindwork_ai_studio::log::init_logging;
|
use mindwork_ai_studio::log::init_logging;
|
||||||
use mindwork_ai_studio::metadata::{MetaData, META_DATA};
|
use mindwork_ai_studio::metadata::MetaData;
|
||||||
use mindwork_ai_studio::runtime_api::start_runtime_api;
|
use mindwork_ai_studio::runtime_api::start_runtime_api;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
let metadata = include_str!("../../metadata.txt");
|
let metadata = MetaData::init_from_string(include_str!("../../metadata.txt"));
|
||||||
let mut metadata_lines = metadata.lines();
|
|
||||||
let app_version = metadata_lines.next().unwrap();
|
|
||||||
let build_time = metadata_lines.next().unwrap();
|
|
||||||
let build_number = metadata_lines.next().unwrap();
|
|
||||||
let dotnet_sdk_version = metadata_lines.next().unwrap();
|
|
||||||
let dotnet_version = metadata_lines.next().unwrap();
|
|
||||||
let rust_version = metadata_lines.next().unwrap();
|
|
||||||
let mud_blazor_version = metadata_lines.next().unwrap();
|
|
||||||
let tauri_version = metadata_lines.next().unwrap();
|
|
||||||
let app_commit_hash = metadata_lines.next().unwrap();
|
|
||||||
let architecture = metadata_lines.next().unwrap();
|
|
||||||
let pdfium_version = metadata_lines.next().unwrap();
|
|
||||||
|
|
||||||
let metadata = MetaData {
|
|
||||||
architecture: architecture.to_string(),
|
|
||||||
app_commit_hash: app_commit_hash.to_string(),
|
|
||||||
app_version: app_version.to_string(),
|
|
||||||
build_number: build_number.to_string(),
|
|
||||||
build_time: build_time.to_string(),
|
|
||||||
dotnet_sdk_version: dotnet_sdk_version.to_string(),
|
|
||||||
dotnet_version: dotnet_version.to_string(),
|
|
||||||
mud_blazor_version: mud_blazor_version.to_string(),
|
|
||||||
rust_version: rust_version.to_string(),
|
|
||||||
tauri_version: tauri_version.to_string(),
|
|
||||||
};
|
|
||||||
|
|
||||||
*META_DATA.lock().unwrap() = Some(metadata);
|
|
||||||
|
|
||||||
init_logging();
|
init_logging();
|
||||||
info!("Starting MindWork AI Studio:");
|
info!("Starting MindWork AI Studio:");
|
||||||
@ -50,14 +23,18 @@ async fn main() {
|
|||||||
let working_directory = std::env::current_dir().unwrap();
|
let working_directory = std::env::current_dir().unwrap();
|
||||||
info!(".. The working directory is: '{working_directory:?}'");
|
info!(".. The working directory is: '{working_directory:?}'");
|
||||||
|
|
||||||
info!(".. Version: v{app_version} (commit {app_commit_hash}, build {build_number}, {architecture})");
|
info!(".. Version: v{app_version} (commit {hash}, build {build_num}, {architecture})",
|
||||||
info!(".. Build time: {build_time}");
|
app_version = metadata.app_version,
|
||||||
info!(".. .NET SDK: v{dotnet_sdk_version}");
|
hash = metadata.app_commit_hash,
|
||||||
info!(".. .NET: v{dotnet_version}");
|
build_num = metadata.build_number,
|
||||||
info!(".. Rust: v{rust_version}");
|
architecture = metadata.architecture);
|
||||||
info!(".. MudBlazor: v{mud_blazor_version}");
|
info!(".. Build time: {build_time}", build_time = metadata.build_time);
|
||||||
info!(".. Tauri: v{tauri_version}");
|
info!(".. .NET SDK: v{sdk_version}", sdk_version = metadata.dotnet_sdk_version);
|
||||||
info!(".. PDFium: v{pdfium_version}");
|
info!(".. .NET: v{dotnet_version}", dotnet_version = metadata.dotnet_version);
|
||||||
|
info!(".. Rust: v{rust_version}", rust_version = metadata.rust_version);
|
||||||
|
info!(".. MudBlazor: v{mud_blazor_version}", mud_blazor_version = metadata.mud_blazor_version);
|
||||||
|
info!(".. Tauri: v{tauri_version}", tauri_version = metadata.tauri_version);
|
||||||
|
info!(".. PDFium: v{pdfium_version}", pdfium_version = metadata.pdfium_version);
|
||||||
|
|
||||||
if is_dev() {
|
if is_dev() {
|
||||||
warn!("Running in development mode.");
|
warn!("Running in development mode.");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use std::sync::Mutex;
|
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
|
use std::sync::Mutex;
|
||||||
|
|
||||||
pub static META_DATA: Lazy<Mutex<Option<MetaData>>> = Lazy::new(|| Mutex::new(None));
|
pub static META_DATA: Lazy<Mutex<Option<MetaData>>> = Lazy::new(|| Mutex::new(None));
|
||||||
|
|
||||||
@ -15,4 +15,46 @@ pub struct MetaData {
|
|||||||
pub tauri_version: String,
|
pub tauri_version: String,
|
||||||
pub app_commit_hash: String,
|
pub app_commit_hash: String,
|
||||||
pub architecture: String,
|
pub architecture: String,
|
||||||
|
pub pdfium_version: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl MetaData {
|
||||||
|
/// Creates a new instance of `MetaData` from the given metadata string.
|
||||||
|
pub fn init_from_string(metadata: &str) -> Self {
|
||||||
|
|
||||||
|
// When the metadata is already initialized, return the existing instance:
|
||||||
|
if let Some(metadata) = META_DATA.lock().unwrap().as_ref() {
|
||||||
|
return metadata.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut metadata_lines = metadata.lines();
|
||||||
|
let app_version = metadata_lines.next().unwrap();
|
||||||
|
let build_time = metadata_lines.next().unwrap();
|
||||||
|
let build_number = metadata_lines.next().unwrap();
|
||||||
|
let dotnet_sdk_version = metadata_lines.next().unwrap();
|
||||||
|
let dotnet_version = metadata_lines.next().unwrap();
|
||||||
|
let rust_version = metadata_lines.next().unwrap();
|
||||||
|
let mud_blazor_version = metadata_lines.next().unwrap();
|
||||||
|
let tauri_version = metadata_lines.next().unwrap();
|
||||||
|
let app_commit_hash = metadata_lines.next().unwrap();
|
||||||
|
let architecture = metadata_lines.next().unwrap();
|
||||||
|
let pdfium_version = metadata_lines.next().unwrap();
|
||||||
|
|
||||||
|
let metadata = MetaData {
|
||||||
|
architecture: architecture.to_string(),
|
||||||
|
app_commit_hash: app_commit_hash.to_string(),
|
||||||
|
app_version: app_version.to_string(),
|
||||||
|
build_number: build_number.to_string(),
|
||||||
|
build_time: build_time.to_string(),
|
||||||
|
dotnet_sdk_version: dotnet_sdk_version.to_string(),
|
||||||
|
dotnet_version: dotnet_version.to_string(),
|
||||||
|
mud_blazor_version: mud_blazor_version.to_string(),
|
||||||
|
rust_version: rust_version.to_string(),
|
||||||
|
tauri_version: tauri_version.to_string(),
|
||||||
|
pdfium_version: pdfium_version.to_string(),
|
||||||
|
};
|
||||||
|
|
||||||
|
*META_DATA.lock().unwrap() = Some(metadata.clone());
|
||||||
|
metadata
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user