1use std::time::Duration;
3
4use const_format::formatcp;
5
6pub const VERSION: &str = clap::crate_version!();
8
9pub const MAJOR_VERSION: &str = env!("CARGO_PKG_VERSION_MAJOR");
11
12pub const MINOR_VERSION: &str = env!("CARGO_PKG_VERSION_MINOR");
14
15pub const PATCH_VERSION: &str = env!("CARGO_PKG_VERSION_PATCH");
17
18pub const VERSION_BUILD: &str = formatcp!("{VERSION}-{}", cuprate_constants::build::BUILD);
22
23pub const PANIC_CRITICAL_SERVICE_ERROR: &str =
25 "A service critical to Cuprate's function returned an unexpected error.";
26
27pub const DEFAULT_CONFIG_WARNING: &str = formatcp!(
28 "WARNING: no config file found, using default config.\
29 \nThe default config may not be optimal for your setup, see the user book here: https://user.cuprate.org/.\
30 \nPausing startup for {} seconds. \
31 \nUse the `--skip-config-warning` arg to skip this delay if you really want to use the default.",
32 DEFAULT_CONFIG_STARTUP_DELAY.as_secs()
33);
34
35pub const DEFAULT_CONFIG_STARTUP_DELAY: Duration = Duration::from_secs(15);
36
37pub const DATABASE_CORRUPT_MSG: &str = r"`cuprated` has encountered a fatal error. The database may be corrupted.
44
45If `cuprated` continues to crash with the current database,
46you may have to delete the database file and re-sync from scratch.
47
48See <https://user.cuprate.org/resources/disk.html>
49for more information on where database files are.
50
51If this happens frequently, consider using the `Safe` sync mode.";
52
53#[cfg(test)]
54mod test {
55 use super::*;
56 use crate::config::Config;
57
58 #[test]
59 fn version() {
60 let semantic_version = format!("{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}");
61 assert_eq!(VERSION, VERSION);
62 assert_eq!(VERSION, "0.1.0-preview");
63 }
64
65 #[test]
66 fn version_build() {
67 if cfg!(debug_assertions) {
68 assert_eq!(VERSION_BUILD, "0.1.0-preview-debug");
69 } else {
70 assert_eq!(VERSION_BUILD, "0.1.0-preview-release");
71 }
72 }
73}