mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
26aac1408e
Correct the domain Remove "embed" in the UA because the global UA was modified, rather than just the one for preview requests
41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
//! one true function for returning the conduwuit version with the necessary
|
|
//! CONDUWUIT_VERSION_EXTRA env variables used if specified
|
|
//!
|
|
//! Set the environment variable `CONDUWUIT_VERSION_EXTRA` to any UTF-8 string
|
|
//! to include it in parenthesis after the SemVer version. A common value are
|
|
//! git commit hashes.
|
|
|
|
use std::sync::OnceLock;
|
|
|
|
static BRANDING: &str = "continuwuity";
|
|
static WEBSITE: &str = "https://continuwuity.org";
|
|
static SEMANTIC: &str = env!("CARGO_PKG_VERSION");
|
|
|
|
static VERSION: OnceLock<String> = OnceLock::new();
|
|
static VERSION_UA: OnceLock<String> = OnceLock::new();
|
|
static USER_AGENT: OnceLock<String> = OnceLock::new();
|
|
|
|
#[inline]
|
|
#[must_use]
|
|
pub fn name() -> &'static str { BRANDING }
|
|
|
|
#[inline]
|
|
pub fn version() -> &'static str { VERSION.get_or_init(init_version) }
|
|
#[inline]
|
|
pub fn version_ua() -> &'static str { VERSION_UA.get_or_init(init_version_ua) }
|
|
|
|
#[inline]
|
|
pub fn user_agent() -> &'static str { USER_AGENT.get_or_init(init_user_agent) }
|
|
|
|
fn init_user_agent() -> String { format!("{}/{} (bot; +{WEBSITE})", name(), version_ua()) }
|
|
|
|
fn init_version_ua() -> String {
|
|
conduwuit_build_metadata::version_tag()
|
|
.map_or_else(|| SEMANTIC.to_owned(), |extra| format!("{SEMANTIC}+{extra}"))
|
|
}
|
|
|
|
fn init_version() -> String {
|
|
conduwuit_build_metadata::version_tag()
|
|
.map_or_else(|| SEMANTIC.to_owned(), |extra| format!("{SEMANTIC} ({extra})"))
|
|
}
|