3 Commits

Author SHA1 Message Date
818fbf8e14 feat(zipdir)!: adopt .gitignore-compatible matching via pathspec; safer dir pruning
Replace custom fnmatch/hidden logic with PathSpec (GitWildMatchPattern) to get true .gitignore semantics.

Highlights:
- Supports !, /, and ** patterns; defaults to ignoring dotfiles via .* (can be overridden with negation).
- build_ignore_spec composes DEFAULT_EXCLUDED_* plus .zipignore/CLI patterns.
- _collect_negation_prefixes prevents over-pruning by keeping dirs that might contain re-included files.
- collect_files now matches with spec and prunes topdown only when no negated descendants are possible.
- Drop fnmatch import and remove is_hidden, normalize_rel, should_exclude helpers.
- On missing dependency, print install hint to stderr and exit(3) (pip install pathspec).

BREAKING: introduces runtime dependency on pathspec.
2025-09-12 08:31:11 +02:00
bcb9483d0a added function to not overwrite existing files 2025-08-23 15:04:50 +02:00
5dc49f6b69 initial commit 2025-08-23 15:03:29 +02:00