diff --git a/src/ls.rs b/src/ls.rs index dbbdfaa..dfc37dc 100644 --- a/src/ls.rs +++ b/src/ls.rs @@ -5,30 +5,32 @@ fn main(){ let args: Vec = 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); - }, - } + let mut dir = pwd.to_str(); + for arg in 1..args.len() { + match args[arg].as_str() { + "--help" => { + println!("List files in directory"); + }, + "-a" | "--all" => { + show_hidden = true; + }, + arg => { + dir = Some(arg); + }, } } + list_dir(dir.unwrap().to_string(), show_hidden); } fn list_dir(arg: String, show_hidden: bool) { let files = fs::read_dir(arg.clone()).unwrap(); + if show_hidden { + println!("."); + println!(".."); + } 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{ + if file.clone().unwrap().display().to_string().starts_with('.') && !show_hidden { continue; } println!("{}", file.unwrap().display());