Remove cat builtin
This commit is contained in:
parent
9002fa3b35
commit
e6838b3837
28
src/main.rs
28
src/main.rs
@ -4,11 +4,6 @@ use std::{
|
|||||||
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
|
||||||
struct Cat {
|
|
||||||
path: PathBuf,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
#[derive(Parser, Debug)]
|
||||||
struct Cd {
|
struct Cd {
|
||||||
path: PathBuf,
|
path: PathBuf,
|
||||||
@ -42,28 +37,6 @@ fn main() {
|
|||||||
};
|
};
|
||||||
match cmd[0].as_str() {
|
match cmd[0].as_str() {
|
||||||
"pwd" => println!("{}", current_dir().unwrap().to_string_lossy()),
|
"pwd" => println!("{}", current_dir().unwrap().to_string_lossy()),
|
||||||
"cat" => {
|
|
||||||
let cmd = match Cat::try_parse_from(&cmd) {
|
|
||||||
Ok(cmd) => cmd,
|
|
||||||
Err(err) => {
|
|
||||||
err.print().unwrap();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let contents = match std::fs::read(&cmd.path) {
|
|
||||||
Ok(val) => val,
|
|
||||||
Err(e) => {
|
|
||||||
println!("cat: {}: {}", cmd.path.display(), e);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
io::stdout().lock().write_all(&contents).unwrap();
|
|
||||||
if let Some(&last_byte) = contents.last() {
|
|
||||||
if last_byte != b'\n' {
|
|
||||||
println!("%");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
"cd" => {
|
"cd" => {
|
||||||
let cmd = match Cd::try_parse_from(&cmd) {
|
let cmd = match Cd::try_parse_from(&cmd) {
|
||||||
Ok(cmd) => cmd,
|
Ok(cmd) => cmd,
|
||||||
@ -86,7 +59,6 @@ fn main() {
|
|||||||
"help" => {
|
"help" => {
|
||||||
println!("Commands:");
|
println!("Commands:");
|
||||||
println!("pwd");
|
println!("pwd");
|
||||||
println!("cat");
|
|
||||||
println!("cd");
|
println!("cd");
|
||||||
println!("exit");
|
println!("exit");
|
||||||
println!("help");
|
println!("help");
|
||||||
|
Loading…
Reference in New Issue
Block a user