mod dependencies;
use build_info::{chrono::Datelike, BuildInfo, CrateInfo};
use std::collections::BTreeMap;
use utils::println_string;
build_info::build_info!(
fn build_info
);
pub(super) fn print_version() {
let info: &BuildInfo = build_info();
utils::println_string!(
"{} v{} built with {} at {}",
info.crate_info.name,
info.crate_info.version,
info.compiler,
info.timestamp
);
}
pub(super) fn print_dependencies() {
let dependencies: BTreeMap<String, CrateInfo> = dependencies::get_all_dependencies();
#[cfg(not(target_family = "wasm"))]
if !dependencies.is_empty() {
println!();
}
for (name, dep) in dependencies {
let license: &String = if dep.license.is_some() {
dep.license.as_ref().unwrap()
} else {
&"Unknown".to_string()
};
println_string!("{} v{} - License {}", name, dep.version, license);
}
}
pub(super) fn print_license() {
let info: &BuildInfo = build_info();
let year: i32 = info.timestamp.year();
let author: &String = if info.crate_info.authors.is_empty() {
&"Unknown".to_string()
} else {
&info.crate_info.authors[0]
};
let license: &String = if info.crate_info.license.is_none() {
&"Unknown".to_string()
} else {
info.crate_info.license.as_ref().unwrap()
};
utils::println_string!("Copyright (C) {} {} - {} License", year, author, license);
}
pub(super) fn print_build_info() {
let info: &BuildInfo = build_info();
utils::println_string!(
"Built for {} {} with {} profile",
info.target.cpu.arch,
info.target.os,
info.profile
);
if let Some(git) = utils::build::get_version_control_build_info() {
if git.dirty {
utils::println_string!("Built from commit {}-dirty", git.commit_id);
} else {
utils::println_string!("Built from commit {}", git.commit_id);
}
}
}
pub(super) fn log_build_info() {
let info: &BuildInfo = build_info();
info!(
"{} v{} built with {} at {}",
info.crate_info.name, info.crate_info.version, info.compiler, info.timestamp
);
info!(
"Built for {} {} with {} profile",
info.target.cpu.arch, info.target.os, info.profile
);
if let Some(git) = utils::build::get_version_control_build_info() {
if git.dirty {
info!("Built from commit {}-dirty", git.commit_id);
} else {
info!("Built from commit {}", git.commit_id);
}
}
}
pub(super) fn license_compliance_helper() {
let info: &BuildInfo = build_info();
let crate_name: &String = &info.crate_info.name;
let repo_url: String = "https://github.com/foxgirl-labs/catgirl-engine".to_string();
if !crate_name.starts_with("catgirl-engine") {
info!("{crate_name} is based off of the Catgirl Engine from {repo_url}");
}
}