extern crate rs_release;
extern crate sysinfo;
extern crate uname;
use {OSVersion, Result};
use self::rs_release::OsReleaseError;
use self::sysinfo::{System, SystemExt};
pub type PlatformError = OsReleaseError;
pub fn os() -> Result<OSVersion> {
let name = uname::uname()?;
Ok(OSVersion {
name: format!("{} {}", name.sysname, name.release),
version: name.release.parse()?,
distribution: rs_release::get_os_release()?
.get("NAME")
.cloned()
.unwrap_or_else(String::new),
})
}
pub fn total_memory() -> u64 {
let mut sys = System::new();
sys.refresh_system();
sys.get_total_memory()
}