Add not builtin command - ls

This commit is contained in:
g1n 2021-07-21 16:23:55 +00:00
parent c967591855
commit d8f629df49
2 changed files with 39 additions and 3 deletions

36
src/ls.rs Normal file
View File

@ -0,0 +1,36 @@
use std::env;
use std::fs;
fn main(){
let args: Vec<String> = env::args().collect();
let pwd = env::current_dir().unwrap();
let mut show_hidden = false;
if args.len() == 1 {
list_dir(pwd.display().to_string(), show_hidden);
} else {
for arg in 1..args.len() {
match args[arg].as_str() {
"--help" => {
println!("List files in directory");
},
"-a" | "--all" => {
show_hidden = true;
},
arg => {
list_dir(arg.to_string(), show_hidden);
},
}
}
}
}
fn list_dir(arg: String, show_hidden: bool) {
let files = fs::read_dir(arg.clone()).unwrap();
for entry in files {
let path = entry.unwrap().path();
let file = path.strip_prefix(arg.clone());
if file.clone().unwrap().display().to_string().starts_with('.') && !show_hidden{
continue;
}
println!("{}", file.unwrap().display());
}
}

View File

@ -9,16 +9,16 @@ fn main(){
"--help" => {
println!("Usage: mkdir [OPTIONS] DIRECTORY");
return;
}
},
"-v" | "--verbose" => {
verbose_flag = true;
}
},
arg => {
fs::create_dir_all(arg.to_string());
if verbose_flag {
println!("mkdir: created directory '{}'", arg);
}
}
},
}
}
}