ntu/Cargo.toml
dschlueter b84dd70f80 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>
2026-02-12 13:39:41 +01:00

70 lines
2.5 KiB
TOML

[package]
name = "NameToUnix"
version = "1.2.0"
edition = "2021"
authors = ["Dieter Schlüter <dschlueter@kitux.de>"]
description = "Ein Tool zum Anpassen von Verzeichnis- und Dateinamen an Linux-Konventionen"
license = "MIT"
readme = "README.md"
repository = "https://kitux.de/forgejo/dschlueter/ntu"
keywords = ["filesystem", "rename", "sanitize", "cli"]
categories = ["command-line-utilities", "filesystem"]
[[bin]]
name = "ntu"
path = "src/main.rs"
[dependencies]
# Bereits verwendete Abhängigkeiten
clap = { version = "4.5.27", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
toml = "0.8.11"
walkdir = "2.4.0"
glob = "0.3.1"
unicode-segmentation = "1.10.0"
emojis = "0.6.1"
regex = "1.10.3"
dirs = "5.0.1"
# Neue empfohlene Abhängigkeiten
anyhow = "1.0.80" # Verbesserte Fehlerbehandlung
thiserror = "1.0.57" # Typisierte Fehler
once_cell = "1.19.0" # Lazy-Initialisierung für statische Werte
rayon = "1.9.0" # Parallelverarbeitung
indicatif = "0.17.7" # Fortschrittsbalken
env_logger = "0.11.2" # Logging-Framework
log = "0.4.21" # Logging-Abstraktionen
itertools = "0.12.1" # Erweiterte Iterator-Funktionalität
colored = "2.1" # Farbige Terminal-Ausgabe
[dev-dependencies]
tempfile = "3.10.1" # Temporäre Dateien für Tests
assert_fs = "1.1.1" # Dateisystem-Assertions für Tests
predicates = "3.1.0" # Prädikate für Tests
assert_cmd = "2.0" # Command-Line Testing
[profile.release]
lto = true # Link-Time-Optimierung
codegen-units = 1 # Optimierung für Binärgröße
opt-level = 3 # Maximale Optimierung
panic = "abort" # Kleinere Binärdatei durch Abbrechen bei Panic
strip = true # Entfernen von Debug-Symbolen
[package.metadata.deb]
maintainer = "Dieter Schlüter <dschlueter@kitux.de>"
copyright = "2025, Dieter Schlüter"
license-file = ["LICENSE", "4"]
extended-description = """
NameToUnix ist ein Kommandozeilen-Tool zum Umbenennen von Dateien und Verzeichnissen,
um sie mit Linux-Dateinamen-Konventionen kompatibel zu machen. Es ersetzt Leerzeichen und
Sonderzeichen durch Unterstriche und konvertiert deutsche Umlaute in ihre ASCII-Pendants.
"""
depends = "$auto"
section = "utils"
priority = "optional"
assets = [
["target/release/ntu", "usr/bin/", "755"],
["README.md", "usr/share/doc/NameToUnix/README", "644"],
["man/ntu.1", "usr/share/man/man1/", "644"],
]