about summary refs log tree commit diff stats
path: root/usr/src/mei
diff options
context:
space:
mode:
authorRen Kararou <[email protected]>2023-05-18 15:00:56 -0400
committerRen Kararou <[email protected]>2023-05-18 15:00:56 -0400
commit38a04660edcb595429a7a207fcffc903d846542a (patch)
tree45e592bc3840d21fe47a277942daeae083d4aeb8 /usr/src/mei
downloadk2spice-38a04660edcb595429a7a207fcffc903d846542a.tar.gz
k2spice-38a04660edcb595429a7a207fcffc903d846542a.tar.bz2
k2spice-38a04660edcb595429a7a207fcffc903d846542a.zip
The Initial Commit
Diffstat (limited to 'usr/src/mei')
-rw-r--r--usr/src/mei/echo/Cargo.toml12
-rw-r--r--usr/src/mei/echo/src/main.rs90
-rw-r--r--usr/src/mei/pwd/Cargo.toml12
-rw-r--r--usr/src/mei/pwd/src/main.rs42
-rw-r--r--usr/src/mei/true/Cargo.toml12
-rw-r--r--usr/src/mei/true/src/main.rs31
-rw-r--r--usr/src/mei/yes/Cargo.toml12
-rw-r--r--usr/src/mei/yes/src/main.rs41
8 files changed, 252 insertions, 0 deletions
diff --git a/usr/src/mei/echo/Cargo.toml b/usr/src/mei/echo/Cargo.toml
new file mode 100644
index 0000000..0b34ec5
--- /dev/null
+++ b/usr/src/mei/echo/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "echo"
+version = "0.1.0"
+edition = "2021"
+
+[[bin]]
+name = "echo"
+path = "src/main.rs"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/usr/src/mei/echo/src/main.rs b/usr/src/mei/echo/src/main.rs
new file mode 100644
index 0000000..ad5eee9
--- /dev/null
+++ b/usr/src/mei/echo/src/main.rs
@@ -0,0 +1,90 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2023 Ren Kararou  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+use std::env;
+
+fn main() {
+    let print: String = env::args().skip(1).collect::<Vec<String>>().join(" ");
+    // This does not currently mimic functionality of illumos echo
+    if print.is_empty() {
+        println!("");
+    } else {
+        println!("{print}");
+    }
+
+    // This mimics illumos echo functionality, or it should
+    /*
+    let mut esc: bool = false;
+    let mut is_num: bool = false;
+    let mut oct: String = "".to_string();
+    let mut oc: u8 = 0;
+
+    for c in print.chars() {
+        if !esc {
+            if c == '\\' {
+                esc = true;
+            } else {
+                print!("{c}");
+            }
+        } else {
+            match c {
+                // "unknown character escape" wtf rust these are valid.
+                //'a' => print!("\a"),
+                //'b' => print!("\b"),
+                //'c' => print!("\c"),
+                //'f' => print!("\f"),
+                'n' => print!("\n"),
+                'r' => print!("\r"),
+                't' => print!("\t"),
+                //'v' => print!("\v"),
+                '\\' => print!("\\"),
+                '0' => is_num = true,
+                _ => print!("\\{c}"),
+            }
+            if is_num {
+                if oc < 3 {
+                    oct.push(c);
+                    oc = oc + 1;
+                }
+                if oc == 2 {
+                    match u32::from_str_radix(oct.as_str(), 8) {
+                        Ok(chr) => print!("{}", chr),
+                        Err(_) => print!("\\0{}", oct),
+                    }
+                    is_num = false;
+                    oct = "".to_string();
+                    oc = 0;
+                    esc = false;
+                }
+            } else {
+                esc = false;
+            }
+        }
+    }
+    print!("\n");
+    */
+}
diff --git a/usr/src/mei/pwd/Cargo.toml b/usr/src/mei/pwd/Cargo.toml
new file mode 100644
index 0000000..99a986f
--- /dev/null
+++ b/usr/src/mei/pwd/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "pwd"
+version = "0.0.1"
+edition = "2021"
+
+[[bin]]
+name = "pwd"
+path = "src/main.rs"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/usr/src/mei/pwd/src/main.rs b/usr/src/mei/pwd/src/main.rs
new file mode 100644
index 0000000..051f5bc
--- /dev/null
+++ b/usr/src/mei/pwd/src/main.rs
@@ -0,0 +1,42 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2023 Ren Kararou  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+use std::process::exit;
+use std::env::current_dir;
+
+fn main() {
+    match current_dir() {
+        Ok(buf) => {
+            println!("{}", buf.to_str().unwrap());
+            exit(0);
+        },
+        Err(_) => {
+            eprintln!("pwd: cannot determine current directory!");
+            exit(2);
+        },
+    }
+}
diff --git a/usr/src/mei/true/Cargo.toml b/usr/src/mei/true/Cargo.toml
new file mode 100644
index 0000000..644bc0d
--- /dev/null
+++ b/usr/src/mei/true/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "truecmd"
+version = "0.0.1"
+edition = "2021"
+
+[[bin]]
+name = "true"
+path = "src/main.rs"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/usr/src/mei/true/src/main.rs b/usr/src/mei/true/src/main.rs
new file mode 100644
index 0000000..6f58f4e
--- /dev/null
+++ b/usr/src/mei/true/src/main.rs
@@ -0,0 +1,31 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2023 Ren Kararou  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+fn main() {
+    return;
+}
diff --git a/usr/src/mei/yes/Cargo.toml b/usr/src/mei/yes/Cargo.toml
new file mode 100644
index 0000000..8372248
--- /dev/null
+++ b/usr/src/mei/yes/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "yes"
+version = "0.1.0"
+edition = "2021"
+
+[[bin]]
+name = "yes"
+path = "src/main.rs"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/usr/src/mei/yes/src/main.rs b/usr/src/mei/yes/src/main.rs
new file mode 100644
index 0000000..5a889f0
--- /dev/null
+++ b/usr/src/mei/yes/src/main.rs
@@ -0,0 +1,41 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2023 Ren Kararou  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+use std::env;
+
+fn main() {
+    let print: String = env::args().skip(1).collect::<Vec<String>>().join(" ");
+    if print.is_empty() {
+        loop {
+            println!("y");
+        }
+    } else {
+        loop {
+            println!("{print}");
+        }
+    }
+}