feat: Add --max-depth option and safe symlink handling (v1.2.0)
## Neue Features - **--max-depth N**: Begrenzt Rekursionstiefe auf N Ebenen (erfordert -r) - Nützlich für sehr tiefe Verzeichnisbäume (z.B. node_modules) - Verhindert unnötige Traversierung tiefer Strukturen - **Explizites Symlink-Handling**: - Standard: Symlinks werden komplett übersprungen (sicher) - Mit --special: Nur Symlink-Namen werden bereinigt, Ziel bleibt unangetastet - follow_links(false) explizit gesetzt zur Vermeidung von Endlosschleifen - Verhindert unbeabsichtigte Änderungen außerhalb des Zielverzeichnisses - **Verbose Symlink-Logging**: Zeigt mit -v welche Symlinks übersprungen werden ## Tests - 5 neue Integration-Tests hinzugefügt: - test_max_depth_option - test_max_depth_requires_recursive - test_symlinks_default_behavior (Unix only) - test_symlinks_with_special_flag (Unix only) - test_symlinks_not_followed (Unix only) - Alle 30 Tests bestehen (25 bestehende + 5 neue) ## Dokumentation - README.md: Neue Beispiele und "Symlink Behavior" Sektion - CHANGELOG.md: v1.2.0 Eintrag mit allen Änderungen - man/ntu.1: --max-depth Option und SYMLINK BEHAVIOR Sektion - CLAUDE.md: Aktualisierte Code-Architektur Dokumentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
cf091f4d4b
commit
b84dd70f80
8 changed files with 228 additions and 7 deletions
27
man/ntu.1
27
man/ntu.1
|
|
@ -1,4 +1,4 @@
|
|||
.TH NTU 1 "2025-02-10" "NameToUnix 1.1.0" "User Commands"
|
||||
.TH NTU 1 "2025-02-12" "NameToUnix 1.2.0" "User Commands"
|
||||
.SH NAME
|
||||
ntu \- sanitize file and directory names to Unix conventions
|
||||
.SH SYNOPSIS
|
||||
|
|
@ -21,6 +21,9 @@ like .tar.gz, and handles hidden files correctly.
|
|||
.BR \-r ", " \-\-recursive
|
||||
Process directories recursively (default: only immediate children)
|
||||
.TP
|
||||
.BR \-\-max\-depth " \fIN\fR"
|
||||
Limit recursion to N levels deep (requires \fB\-r\fR). Useful for processing only a few levels of a deep directory tree (e.g., limiting node_modules traversal).
|
||||
.TP
|
||||
.BR \-s ", " \-\-sequence " \fINAME\fR"
|
||||
Use a specific transformation sequence. Available sequences: default, lower, upper, minimal, utf-8. Use \fB\-L\fR to list all sequences.
|
||||
.TP
|
||||
|
|
@ -153,6 +156,28 @@ List all available sequences:
|
|||
.TP
|
||||
List sequences with details:
|
||||
.B ntu \-L \-v
|
||||
.TP
|
||||
Limit recursion depth to 3 levels:
|
||||
.B ntu \-r \-\-max\-depth 3 /path/to/files
|
||||
.TP
|
||||
Process symlink names (but don't follow them):
|
||||
.B ntu \-r \-\-special /path/to/files
|
||||
.SH SYMLINK BEHAVIOR
|
||||
By default, \fBntu\fR does not process symbolic links:
|
||||
.IP \(bu 2
|
||||
Symlinks are skipped (not renamed, not followed)
|
||||
.IP \(bu 2
|
||||
Prevents unintended changes outside the target directory
|
||||
.IP \(bu 2
|
||||
No risk of infinite loops from circular symlinks
|
||||
.PP
|
||||
With the \fB\-\-special\fR flag:
|
||||
.IP \(bu 2
|
||||
Symlink names are sanitized (e.g., "link to file" \(-> "link_to_file")
|
||||
.IP \(bu 2
|
||||
Symlinks are still not followed (targets remain unchanged)
|
||||
.IP \(bu 2
|
||||
Safe: only the link itself is renamed, not what it points to
|
||||
.SH CONFIGURATION
|
||||
.B ntu
|
||||
looks for configuration files in the following locations (in order):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue