fil_ls 0.1.3

a simple command line tool to list frame sequence in friendly way
Documentation
use fil_ls::run;
use std::fs::ReadDir;
use std::path::Path;
use std::{env, fs};

fn get_current_working_dir() -> String {
    let file_path = env::current_dir();
    match file_path {
        Ok(file) => file.to_string_lossy().to_string(),
        Err(_) => panic!("Current Dir does not exist"),
    }
}

fn get_path() -> String {
    let args: Vec<String> = env::args().collect();
    let file_path: String = if args.len() > 1 {
        args.get(1).unwrap().to_string()
    } else {
        get_current_working_dir()
    };

    let _ = Path::new(&file_path).exists();
    file_path.to_string()
}

fn parse_dir(input_path: String) -> Vec<String> {
    let paths: ReadDir = fs::read_dir(input_path).unwrap();
    paths
        .filter_map(|entry| {
            entry.ok().and_then(|e| {
                e.path()
                    .file_name()
                    .and_then(|n| n.to_str().map(|s| s.to_string()))
            })
        })
        .collect::<Vec<String>>()
}

#[test]
fn test_parse_dir() {
    assert_eq!(6, crate::parse_dir("./samples".to_string()).len());
}

fn main() {
    let paths: Vec<String> = parse_dir(get_path());
    let results: Vec<String> = run(paths);
    for line in results {
        println!("{}", line);
    }
}