From fa72ecdb86ccf5951e2cfead4ec22bd5bfa4876b Mon Sep 17 00:00:00 2001 From: Mufeed VH Date: Wed, 15 Jan 2025 17:52:46 +0530 Subject: [PATCH] Support for `--hidden` and `--no-ignore` Options (Closes #58) --- src/main.rs | 10 ++++++++++ src/path.rs | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index de5064e..da1300c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -98,6 +98,14 @@ struct Cli { /// Follow symlinks #[clap(short = 'f', long)] follow_symlinks: bool, + + /// Include hidden directories and files + #[clap(long)] + hidden: bool, + + /// Skip .gitignore rules + #[clap(long)] + no_ignore: bool, } fn main() -> Result<()> { @@ -126,6 +134,8 @@ fn main() -> Result<()> { args.exclude_from_tree, args.no_codeblock, args.follow_symlinks, + args.hidden, + args.no_ignore, ); let (tree, files) = match create_tree { diff --git a/src/path.rs b/src/path.rs index d3637c7..838db40 100644 --- a/src/path.rs +++ b/src/path.rs @@ -34,6 +34,8 @@ pub fn traverse_directory( exclude_from_tree: bool, no_codeblock: bool, follow_symlinks: bool, + hidden: bool, + no_ignore: bool, ) -> Result<(String, Vec)> { // ~~~ Initialization ~~~ let mut files = Vec::new(); @@ -42,7 +44,8 @@ pub fn traverse_directory( // ~~~ Build the Tree ~~~ let tree = WalkBuilder::new(&canonical_root_path) - .git_ignore(true) + .hidden(!hidden) // By default hidden=false, so we invert the flag + .git_ignore(!no_ignore) // By default no_ignore=false, so we invert the flag .follow_links(follow_symlinks) .build() .filter_map(|e| e.ok())