diff --git a/CLAUDE.md b/CLAUDE.md index a725cdb..5fde71d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,8 +73,8 @@ Das Projekt ist in Module aufgeteilt: - **`cli.rs`**: Command-Line Interface - Definiert `Cli`-Struct mit `clap::Parser` - - Argumente: `paths`, `--quiet`, `--no-changes`, `--force`, `--exclude`, `--verbose`, `--modify-root` - - `ArgGroup` verhindert gleichzeitige Nutzung von `--no-changes` und `--force` + - Argumente: `paths`, `--quiet`, `--dry-run` (alias: `--no-changes`), `--force`, `--exclude`, `--verbose`, `--modify-root`, `--special` + - `ArgGroup` verhindert gleichzeitige Nutzung von `--dry-run` und `--force` - **`config.rs`**: Konfigurationsmanagement - `Config`-Struct mit `HashMap` für benutzerdefinierte Ersetzungen @@ -116,6 +116,14 @@ Das Projekt ist in Module aufgeteilt: 5. **Root-Directory-Schutz**: Standardmäßig wird das Root-Verzeichnis (depth 0) nicht umbenannt, außer `--modify-root` ist gesetzt. +6. **Smart Default-Excludes**: `.git`, `.svn`, `node_modules`, `.cache`, `__pycache__` werden automatisch ignoriert (ähnlich wie detox). + +7. **Doppel-Extensions**: `.tar.gz`, `.tar.bz2`, `.tar.xz` etc. werden korrekt als Einheit behandelt (nicht nur `.gz`). + +8. **Versteckte Dateien**: Dateien mit führendem Punkt (`.gitignore`) bleiben unverändert, der Punkt wird korrekt behandelt. + +9. **Special Files**: Symlinks und Special Files werden standardmäßig übersprungen, außer `--special` ist gesetzt. + ## Verwendete Dependencies - `clap` mit derive-Feature für CLI-Parsing diff --git a/README.md b/README.md index 8559ea3..f45cd57 100644 --- a/README.md +++ b/README.md @@ -66,8 +66,9 @@ cp .NameToUnix.conf ~/.config/NameToUnix/config.toml # Copy config file to # Basic usage ntu /path/to/files -# Only preview the changes without actual renaming -ntu -n /path/to/files +# Dry-run: only preview the changes without actual renaming +ntu --dry-run /path/to/files +ntu -n /path/to/files # Short form # Process multiple paths ntu /path1 /path2 /path3 @@ -75,21 +76,32 @@ ntu /path1 /path2 /path3 # Exclude specific files ntu -e "*.tmp" -e "backup_*" /path/to/files +# Process symlinks and special files (normally skipped) +ntu --special /path/to/files + # Increase verbosity ntu -v /path/to/files # Also rename the root directory ntu --modify-root /path/to/files +# Combine options +ntu --dry-run -v --special /path/to/files + ``` + +**Note:** The following directories/files are automatically excluded: +`.git`, `.svn`, `node_modules`, `.cache`, `__pycache__` + ## Verwendung ```bash # Grundlegende Verwendung ntu /pfad/zu/dateien -# Nur Vorschau der Änderungen ohne tatsächliche Umbenennung -ntu -n /pfad/zu/dateien +# Dry-run: Nur Vorschau der Änderungen ohne tatsächliche Umbenennung +ntu --dry-run /pfad/zu/dateien +ntu -n /pfad/zu/dateien # Kurzform # Mehrere Pfade verarbeiten ntu /pfad1 /pfad2 /pfad3 @@ -97,13 +109,23 @@ ntu /pfad1 /pfad2 /pfad3 # Bestimmte Dateien ausschließen ntu -e "*.tmp" -e "backup_*" /pfad/zu/dateien +# Symlinks und Special Files verarbeiten (normalerweise übersprungen) +ntu --special /pfad/zu/dateien + # Verbosity erhöhen ntu -v /pfad/zu/dateien # Auch das Wurzelverzeichnis umbenennen ntu --modify-root /pfad/zu/dateien + +# Optionen kombinieren +ntu --dry-run -v --special /pfad/zu/dateien + ``` +**Hinweis:** Die folgenden Verzeichnisse/Dateien werden automatisch ausgeschlossen: +`.git`, `.svn`, `node_modules`, `.cache`, `__pycache__` + ## Configuration File / Konfiguration Erstelle eine Datei `.NameToUnix.conf` im persönlichen Arbeitsverzeichnis z. B. mit folgendem Inhalt @@ -189,11 +211,12 @@ Arguments: Options: -q, --quiet Ausgaben unterdrücken (keine Umbenennungsinfos auf stdout) --n, --no-changes Nur anzeigen, aber keine realen Änderungen vornehmen +-n, --dry-run Nur anzeigen, aber keine realen Änderungen vornehmen (dry-run) -f, --force Existierende Dateien überschreiben -e, --exclude Zu ignorierende Muster (-e "*.py", mehrere können angegeben werden) -v, --verbose Ausführliche Debug-Informationen --modify-root Erlaubt, auch das Wurzelverzeichnis anzupassen + --special Auch symbolische Links und Special Files verarbeiten -h, --help Print help -V, --version Print version @@ -211,11 +234,12 @@ Arguments: Options: -q, --quiet Suppress output (no renaming info on stdout) --n, --no-changes Only display, but do not make any real changes +-n, --dry-run Only display, but do not make any real changes (dry-run) -f, --force Overwrite existing files --e, --exclude Patterns to be ignored (-e “*.py”, several can be specified) +-e, --exclude Patterns to be ignored (-e "*.py", several can be specified) -v, --verbose Detailed debug information --modify-root Allows you to customize the root directory as well + --special Also process symbolic links and special files -h, --help Print help -V, --version Print version