Skip to main content

setu_cli/
finder.rs

1use std::{
2    fs::{self},
3    path::{Path, PathBuf},
4};
5
6pub fn get_markdowns(target_path: &str) -> Vec<PathBuf> {
7    let path = Path::new(target_path).to_path_buf();
8
9    if path.is_file() && is_markdown(&path) {
10        return vec![path];
11    }
12
13    fs::read_dir(target_path)
14        .map(|read_dir| {
15            read_dir
16                .flatten()
17                .filter(|entry| is_markdown(&entry.path()))
18                .map(|entry| entry.path())
19                .collect()
20        })
21        .unwrap_or_else(|_| Vec::new())
22}
23
24pub fn is_markdown(path: &PathBuf) -> bool {
25    path.extension()
26        .map(|ext| ext == "md" || ext == "markdown")
27        .unwrap_or(false)
28}