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
use std::str::FromStr;
use nix::sys;
use platforms::target::{Arch, OS};
use crate::host::Info;
pub fn info() -> Info {
let utsname = sys::utsname::uname();
let operating_system = OS::from_str(utsname.sysname()).unwrap_or(OS::Unknown);
let release = utsname.release().to_string();
let version = utsname.version().to_string();
let hostname = utsname.nodename().to_string();
let architecture = Arch::from_str(utsname.machine()).unwrap_or(Arch::Unknown);
Info {
operating_system,
release,
version,
hostname,
architecture,
}
}