Merge pull request #1480 from smlavine/main

feat: Add "!" command to `rustlings watch`
This commit is contained in:
liv 2023-04-18 15:51:06 +00:00 committed by GitHub
commit 0dc9c33b01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 4 deletions

View File

@ -298,13 +298,21 @@ fn spawn_watch_shell(
println!("Bye!"); println!("Bye!");
} else if input.eq("help") { } else if input.eq("help") {
println!("Commands available to you in watch mode:"); println!("Commands available to you in watch mode:");
println!(" hint - prints the current exercise's hint"); println!(" hint - prints the current exercise's hint");
println!(" clear - clears the screen"); println!(" clear - clears the screen");
println!(" quit - quits watch mode"); println!(" quit - quits watch mode");
println!(" help - displays this help message"); println!(" !<cmd> - executes a command, like `!rustc --explain E0381`");
println!(" help - displays this help message");
println!(); println!();
println!("Watch mode automatically re-evaluates the current exercise"); println!("Watch mode automatically re-evaluates the current exercise");
println!("when you edit a file's contents.") println!("when you edit a file's contents.")
} else if let Some(cmd) = input.strip_prefix('!') {
let parts: Vec<&str> = cmd.split_whitespace().collect();
if parts.is_empty() {
println!("no command provided");
} else if let Err(e) = Command::new(parts[0]).args(&parts[1..]).status() {
println!("failed to execute command `{}`: {}", cmd, e);
}
} else { } else {
println!("unknown command: {input}"); println!("unknown command: {input}");
} }