1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
//! What kernel version is running?
//!
//! # Example
//!
//! ```
//! let kernel = whatsys::kernel_version(); // E.g. Some("20.3.0")
//! ```
//!
//! # Supported operating systems
//!
//! We support the following operating systems:
//!
//! * Windows
//! * macOS
//! * Linux
//! * Android
//!
//! # License
//!
//! MIT. Copyright (c) 2021-2022 Jan-Erik Rediger
//!
//! Based on:
//!
//! * [sys-info](https://crates.io/crates/sys-info), [Repository](https://github.com/FillZpp/sys-info-rs), [MIT LICENSE][sys-info-mit]
//! * [sysinfo](https://crates.io/crates/sysinfo), [Repository](https://github.com/GuillaumeGomez/sysinfo), [MIT LICENSE][sysinfo-mit]
//!
//! [sys-info-mit]: https://github.com/FillZpp/sys-info-rs/blob/master/LICENSE
//! [sysinfo-mit]: https://github.com/GuillaumeGomez/sysinfo/blob/master/LICENSE
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
cfg_if::cfg_if! {
if #[cfg(target_os = "macos")] {
mod apple;
use apple as system;
} else if #[cfg(any(target_os = "linux", target_os = "android"))] {
mod linux;
use linux as system;
} else if #[cfg(windows)] {
mod windows;
use windows as system;
} else {
mod fallback;
use fallback as system;
}
}
pub use system::kernel_version;
#[cfg(target_os = "windows")]
pub use system::windows_build_number;
#[cfg(test)]
mod test {
use super::*;
#[test]
fn gets_a_version() {
assert!(kernel_version().is_some());
}
#[cfg(target_os = "windows")]
#[test]
fn test_windows_build_number() {
let build_number = windows::windows_build_number();
assert!(build_number.is_some());
}
}