From 2ab539d2e488fbd98979dad114352311c613a3ff Mon Sep 17 00:00:00 2001
From: Ian Douglas Scott <ian@iandouglasscott.com>
Date: Tue, 18 Jul 2017 15:42:42 -0700
Subject: [PATCH] sys:uname

---
 build.rs                | 4 ++++
 src/scheme/sys/mod.rs   | 2 ++
 src/scheme/sys/uname.rs | 9 +++++++++
 3 files changed, 15 insertions(+)
 create mode 100644 src/scheme/sys/uname.rs

diff --git a/build.rs b/build.rs
index 8c04b16d..29667696 100644
--- a/build.rs
+++ b/build.rs
@@ -114,4 +114,8 @@ b"        files.clear();" // Silence mutability warning
     }
 }
     ").unwrap();
+
+    fn main() {
+        println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
+    }
 }
diff --git a/src/scheme/sys/mod.rs b/src/scheme/sys/mod.rs
index 39b8953d..a058dbfd 100644
--- a/src/scheme/sys/mod.rs
+++ b/src/scheme/sys/mod.rs
@@ -15,6 +15,7 @@ mod exe;
 mod iostat;
 mod scheme;
 mod scheme_num;
+mod uname;
 //mod interrupt;
 //mod log;
 //mod test;
@@ -45,6 +46,7 @@ impl SysScheme {
         files.insert(b"iostat", Box::new(move || iostat::resource()));
         files.insert(b"scheme", Box::new(move || scheme::resource()));
         files.insert(b"scheme_num", Box::new(move || scheme_num::resource()));
+        files.insert(b"uname", Box::new(move || uname::resource()));
         //files.insert(b"interrupt", Box::new(move || interrupt::resource()));
         //files.insert(b"log", Box::new(move || log::resource()));
         //files.insert(b"test", Box::new(move || test::resource()));
diff --git a/src/scheme/sys/uname.rs b/src/scheme/sys/uname.rs
new file mode 100644
index 00000000..29daef8c
--- /dev/null
+++ b/src/scheme/sys/uname.rs
@@ -0,0 +1,9 @@
+use collections::Vec;
+use syscall::error::Result;
+
+pub fn resource() -> Result<Vec<u8>> {
+    Ok(format!("Redox\n\n{}\n\n{}\n",
+               env!("CARGO_PKG_VERSION"),
+               env!("TARGET").split('-').next().unwrap()).into_bytes())
+}
+
-- 
GitLab