1
0
Fork 0
mirror of https://github.com/archtechx/todo-system.git synced 2025-12-12 00:54:03 +00:00

more gitignore logic improvements

This commit is contained in:
Samuel Štancl 2023-11-27 02:21:41 +01:00
parent df395e08ef
commit d08da09de1
2 changed files with 9 additions and 3 deletions

View file

@ -2,7 +2,7 @@ use std::fs::canonicalize;
use std::path::PathBuf;
use clap::{Parser, ArgAction};
use scan::{scan_readme_file, add_excludes_from_gitignore};
use scan::scan_readme_file;
use crate::entries::Entry;
use crate::render::render_entries;
use crate::scan::{Stats, scan_dir, scan_todo_file};
@ -92,8 +92,6 @@ fn main() {
scan_readme_file(&readme_path, &mut entries).unwrap();
}
add_excludes_from_gitignore(&root_dir, &mut excludes);
for p in &paths {
scan_dir(p.as_path(), &mut entries, &mut excludes, &mut stats).unwrap();
}

View file

@ -107,6 +107,10 @@ pub fn add_excludes_from_gitignore(base_dir: &PathBuf, excludes: &mut Vec<PathBu
}
for line in std::fs::read_to_string(gitignore).unwrap().lines() {
if line.trim().is_empty() {
continue;
}
if line.trim() == "*" {
if let Ok(realpath) = canonicalize(&base_dir) {
excludes.push(realpath);
@ -119,6 +123,10 @@ pub fn add_excludes_from_gitignore(base_dir: &PathBuf, excludes: &mut Vec<PathBu
continue;
}
if line.trim().starts_with('#') {
continue;
}
let mut pattern = base_dir.clone();
pattern.push(line.trim_end_matches("*/").trim_matches('/'));