aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJonas Maier <>2026-03-05 11:26:45 +0100
committerJonas Maier <>2026-03-05 11:26:45 +0100
commite26fb0123eaafb0889537c92ba66592c64249c1d (patch)
tree92f3b758127ffd17ebc41027434898f8444ebd5e /src
parent7db3154e9ebdf3c4e4863a9f2ab13daffe6e7285 (diff)
downloadpish-e26fb0123eaafb0889537c92ba66592c64249c1d.tar.gz
some more special key codes
Diffstat (limited to 'src')
-rw-r--r--src/main.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 2cb1ba7..44985fb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -43,6 +43,7 @@ fn run_command(raw: &ScopedRawMode, line: Vec<u8>) {
let parsed = match parsed {
Ok(p) => p,
Err(err) => {
+ println!("{line:?}");
print!("{err:?}\r\n{PROMPT}");
return;
}
@@ -148,7 +149,16 @@ fn run_command(raw: &ScopedRawMode, line: Vec<u8>) {
print!("\r{status_string}{PROMPT}");
}
+fn env_path() {
+ let path = std::env::var("PATH").unwrap();
+ for p in path.split(":") {
+ println!("{p}");
+ }
+}
+
fn event_loop() {
+ env_path();
+
let stdin = io::stdin();
let stdout = io::stdout();
@@ -176,6 +186,18 @@ fn event_loop() {
break;
}
+ // Ctrl+L
+ 12 => todo!(),
+
+ // Ctrl+R
+ 18 => {
+ // restart shell
+ raw.disable();
+ let _ = Command::new("cargo").arg("run").status();
+ raw.disable();
+ std::process::exit(0);
+ },
+
// Enter
b'\r' => {
let line = line.dump();