pub mod protocol; pub use protocol::*; use std::{ os::unix::prelude::MetadataExt, path::{Path, PathBuf}, }; pub fn socket_path() -> PathBuf { std::env::var("XDG_RUNTIME_DIR") .map(|p| Path::new(p.as_str()).to_path_buf()) .unwrap_or_else(|_| Path::new("/run/user").join(format!("{}", getuid()))) .join("calendar") } fn getuid() -> u32 { std::fs::metadata("/proc/self").unwrap().uid() } #[macro_export] macro_rules! version { () => { format!( "{} {} (lib{})", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"), karlcommon::own_version() ) }; } pub fn own_version() -> String { format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")) }