andhus / dirhash-python

Python module and CLI for hashing of file system directories based on the Dirhash Standard.
MIT License
51 stars 12 forks source link

`--ignore` not considering dir name (and probably broken in other ways) #8

Open dvarrazzo opened 3 years ago

dvarrazzo commented 3 years ago

it seems that --ignore doesn't take in consideration the full path of the file, so it's impossible to exclude a sub-directory. So it's not really a "glob/.gitignore match" as documented, as they work on the whole path.

$ dirhash -l ./ --ignore .venv | grep '\.venv' | head -1
.venv/bin/activate

It also seems that it breaks other ignores: .pyc can be excluded:

$ dirhash -l ./ --ignore \*.pyc| grep '\.pyc$' | head -1

but using two excludes pattern they come back.

$ dirhash -l ./ --ignore \*.pyc --ignore .venv | grep '\.pyc$' | head -1
.venv/lib/python3.7/__pycache__/__future__.cpython-37.pyc

dirhash version is 0.2.1

flichtenheld commented 2 years ago

Both issues seem to be more usability problems:

.venv doesn't work, but .venv/ does.

The syntax to give more than one pattern is --ignore <pattern1> <pattern2> not --ignore <pattern1> --ignore <pattern2>.