Allow directories to be ignored with -I/IPattern
- Dominant language
- Go
- Stars
- 105
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
Currently, the `-I` flag and `IPattern` option only ignore _files_ with the given pattern. Directories matching the pattern remain in the tree.
Would it be possible to also ignore directories? I know this would break the existing API, so I'm not sure if there should be a new option for this, rather than change the existing behaviour.
The `tree` command installed with Homebrew from http://mama.indstate.edu/users/ice/tree/ does ignore directories in addition to files, as shown below:
``` bash session
$ mkdir -p rootdir/building/flowers rootdir/{road,ocean}
$ touch rootdir/building/b.txt rootdir/building/flowers/f.txt rootdir/road/r.txt rootdir/ocean/o.txt
$ tree rootdir/
rootdir/
├── building
│ ├── b.txt
│ └── flowers
│ └── f.txt
├── ocean
│ └── o.txt
└── road
└── r.txt
4 directories, 4 files
$ $GOPATH/src/github.com/a8m/tree/tree rootdir/
rootdir/
├── building
│ ├── b.txt
│ └── flowers
│ └── f.txt
├── ocean
│ └── o.txt
└── road
└── r.txt
4 directories, 4 files
$ tree -I building rootdir/
rootdir/
├── ocean
│ └── o.txt
└── road
└── r.txt
2 directories, 2 files
$ $GOPATH/src/github.com/a8m/tree/tree -I building rootdir/
rootdir/
├── building
│ ├── b.txt
│ └── flowers
│ └── f.txt
├── ocean
│ └── o.txt
└── road
└── r.txt
4 directories, 4 files
```
I'd be happy to work on this, but I'm not sure if it's something you want to add to the project. If so, I'd appreciate some guidance about how to handle backward compatibility.
Thanks!
Contributor guide
No contributing guide indexed for this repository
Research direction
Look at the code handling the -I flag and IPattern option, likely in the main package or a walker. Understand how file patterns are matched and filtered. The change is to also skip directories matching the pattern, which may affect tree traversal logic. Check for existing tests related to -I to update and ensure backward compatibility considerations are addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100