summaryrefslogtreecommitdiffstats
path: root/third_party/rust/whatsys/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--third_party/rust/whatsys/src/lib.rs70
1 files changed, 70 insertions, 0 deletions
diff --git a/third_party/rust/whatsys/src/lib.rs b/third_party/rust/whatsys/src/lib.rs
new file mode 100644
index 0000000000..1e071343b7
--- /dev/null
+++ b/third_party/rust/whatsys/src/lib.rs
@@ -0,0 +1,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());
+ }
+}