Commit graph

54 commits

Author SHA1 Message Date
ad44139e21 fix: Race Condition bei paralleler Umbenennung, Clippy/Deprecation-Warnings und Formatierung
- Parallele Berechnung (par_iter) entfernt, da sie die tiefenbasierte
  Sortierung zerstörte und Parent-Verzeichnisse vor ihren Kindern
  umbenannt werden konnten
- Duplizierten Code zwischen parallelem und sequentiellem Pfad entfernt
- Clippy-Warning behoben: collapsible str::replace in sanitizer.rs
- Deprecation-Warning behoben: #[allow(deprecated)] für cargo_bin Import
- cargo fmt angewendet

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 04:08:23 +01:00
0c26e5244c Version 1.2.0 produktionsreif 2026-02-12 14:23:44 +01:00
2eab4e7592 build: Add config and shell completions to .deb package assets
- Config-Beispiel: /usr/share/doc/NameToUnix/config.toml.example
- Bash-Completion: /etc/bash_completion.d/ntu
- Zsh-Completion: /usr/share/zsh/vendor-completions/_ntu
- Fish-Completion: /usr/share/fish/vendor_completions.d/ntu.fish

Package Size: 868 KB
Installed Size: ~3 MB
2026-02-12 14:06:53 +01:00
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
cf091f4d4b chore: Migrate from GitHub to Forgejo
- Update repository URL to kitux.de/forgejo/dschlueter/ntu
- Replace GitHub badges with simple repository link
- Update email addresses: dieter.schlueter@linix.de -> dschlueter@kitux.de
- Update all installation and clone instructions
- Update bug report and documentation URLs in manpage
- Mark GitHub Actions workflows as legacy
2026-02-12 13:06:45 +01:00
2ec4d12d6c Implement sequences feature v1.1.0
- Add -s/--sequence option to select transformation sequences
- Add -L flag to list all available sequences
- Implement 5 hardcoded sequences: default, lower, upper, minimal, utf-8
- Refactor clean_filename() to support sequence-based transformations
- Update all tests to pass sequence parameter (25 tests passing)
- Add 8 new integration tests for sequence functionality
- Update documentation (README, CHANGELOG, manpage)
- Update shell completions (bash, zsh, fish)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 18:38:23 +01:00
d78e318d8a neue Optionen (-r, Installskript) installiert 2026-02-10 15:38:53 +01:00
0bab728d62 Bump Version auf 0.3.0 v0.3.0
Neue Features seit 0.2.0:
- CI/CD Pipeline mit automatischen Builds
- Shell-Completions für Bash, Zsh und Fish
- Professionelle Manpage
- Farbige Terminal-Ausgabe
- 13 Integration-Tests

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 13:42:24 +01:00
e872cefe54 Füge Fish Shell Completion hinzu
- Vollständige Completion für Fish Shell (completions/ntu.fish)
- Unterstützt alle Flags und Optionen
- Path-Completion für Verzeichnisse und Dateien
- README um Fish-Installation erweitert

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 13:41:17 +01:00
e4c8b9e780 Füge professionelle Manpage hinzu
- Vollständige groff-formatierte Manpage (man/ntu.1)
- Dokumentiert alle Optionen, Flags und Transformationen
- Beispiele für typische Anwendungsfälle
- Sicherheitshinweise und Best Practices
- Beschreibt Default-Excludes und Parallelverarbeitung
- Konfigurationsdatei-Hierarchie dokumentiert
- Manpage in Debian-Paket-Assets integriert
- README um Installationsanweisung für Manpage erweitert

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 13:40:48 +01:00
0f61e0fbd9 Implementiere farbige Terminal-Ausgabe
- Fügt colored Crate hinzu für bessere visuelle Unterscheidung
- Grün: erfolgreiche Umbenennungen
- Gelb: Dry-run Modus
- Rot: Fehlermeldungen
- Cyan/Bold: Statistik-Zusammenfassung
- Neues --no-color Flag zum Deaktivieren
- Automatische Farberkennung via is_terminal()
- Behebt ungenutzten warn Import
- Aktualisiert Integration-Tests auf neues cargo_bin! Makro

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 13:39:30 +01:00
b9f8e9592e test: 13 Integration-Tests hinzugefügt + .gitignore optimiert
Integration-Tests:
- test_help_flag, test_version_flag
- test_dry_run_no_changes, test_actual_rename
- test_hidden_files_preserved, test_hidden_file_with_spaces
- test_umlaut_conversion, test_double_extension
- test_exclude_pattern, test_quiet_mode
- test_multiple_paths, test_parentheses_removed
- test_special_identifiers_preserved

.gitignore:
- Besser organisiert (Kategorien)
- Cargo.lock hinzugefügt
- Temporäre Dateien (*.tmp, *.log, *.bak)
- OS-spezifische Dateien (Thumbs.db)
- Test-Artefakte

Gesamt: 22 Tests (9 Unit + 13 Integration)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:41:57 +01:00
53c10f1913 feat: CI/CD, Bash-Completion und README-Verbesserungen
- GitHub Actions CI Pipeline (Tests, Clippy, Format-Checks)
- GitHub Actions Release Pipeline (Multi-Platform Builds)
- Bash-Completion Script für Shell-Autovervollständigung
- Zsh-Completion Script (_ntu)
- README Badges (CI, Release, Version, License)
- Installationsanleitung für Pre-built Binaries
- Alte build.yaml entfernt (ersetzt durch moderne ci.yml)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:39:44 +01:00
f4006ba99d release: Version 0.2.0 mit Statistiken und CHANGELOG v0.2.0
- Version erhöht von 0.1.0 auf 0.2.0
- CHANGELOG.md hinzugefügt mit vollständiger Feature-Liste
- Statistiken am Ende: Verarbeitete/geplante/umbenannte Dateien
- Fehler-Zähler für übersprungene/fehlgeschlagene Umbenennungen
- Kommentar-Klarstellung in sanitizer.rs
- Bessere Fehlerbehandlung mit detaillierten Error-Messages

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:30:18 +01:00
60a56ec021 feat: Schreibrechte-Prüfung vor Umbenennung
- is_safe_rename() prüft jetzt Schreibrechte im Parent-Verzeichnis
- Prüfung für Quell- und Ziel-Verzeichnis
- Unix-spezifisch: Nutzt PermissionsExt für mode-Check
- Bessere Fehlermeldungen bei fehlenden Schreibrechten
- Verhindert sinnlose Rename-Versuche, die ohnehin fehlschlagen würden

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:26:24 +01:00
ca49404dfa feat: Parallele Verarbeitung mit rayon bei vielen Dateien
- Bei >= 100 Dateien wird rayon für parallele Berechnung genutzt
- clean_filename() wird parallel ausgeführt (CPU-intensive Operation)
- Tatsächliche Umbenennung bleibt sequenziell (I/O-bound, Race-Conditions vermeiden)
- Bei < 100 Dateien sequenziell (Overhead vermeiden)
- RenameOperation-Struct für geplante Umbenennungen

Performance-Gewinn bei großen Verzeichnisbäumen mit vielen Dateien.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:24:50 +01:00
e97025e17c chore: CLAUDE.md aus Repository entfernt (nur lokal behalten) 2026-02-10 10:20:44 +01:00
7b30e57ce8 docs: Dokumentation mit neuen Features aktualisiert
- README: --dry-run statt --no-changes in Beispielen
- README: --special Option dokumentiert
- README: Smart Excludes dokumentiert (.git, node_modules, etc.)
- README: Kombinierte Beispiele hinzugefügt
- CLAUDE.md: Neue Features in Besonderheiten ergänzt
- CLAUDE.md: CLI-Argumente aktualisiert

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:15:03 +01:00
6c7470e7a6 feat: Bessere Erkennung von Doppel-Extensions
- .tar.gz, .tar.bz2, .tar.xz, .tar.zst, .tar.lz, .tar.Z
  werden jetzt korrekt als Einheit behandelt
- "my archive.tar.gz" → "my_archive.tar.gz" (nicht mehr "my_archive.gz")
- Neue Hilfsfunktion split_filename()
- Tests für Doppel-Extensions hinzugefügt

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:13:47 +01:00
3241b40d01 test: Unit-Tests für clean_filename() hinzugefügt
- 8 Tests für verschiedene Edge-Cases:
  - Basis-Funktionalität (Spaces, Klammern)
  - Versteckte Dateien (.gitignore, .my config)
  - Umlaute (Müller → Mueller)
  - Extensions (.tar.gz, mehrfache Punkte)
  - Spezial-Identifier (C++, C#)
  - Apostrophe (O'Reilly → OReilly)
  - Leere Dateinamen nach Bereinigung
  - Dateien die keine Änderung benötigen

Alle Tests bestehen ✓

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:12:40 +01:00
dbb3a092a6 feat: CLI-Verbesserungen nach detox-Analyse
- --dry-run als primäre Option (--no-changes als deprecated alias)
- --special für Symlinks und Special Files
- Smart Default-Excludes: .git, .svn, node_modules, .cache, __pycache__
  werden automatisch ignoriert (ähnlich wie detox)
- Alle Änderungen rückwärtskompatibel

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 10:11:59 +01:00
0860fae6ec refactor: Binary von NameToUnix zu ntu umbenannt
- Binary heißt jetzt 'ntu' für kürzere CLI-Nutzung
- Package-Name bleibt 'NameToUnix' (für Repository/Crate)
- Alle Beispiele und Dokumentation in README.md angepasst
- CLAUDE.md mit neuen Build-Pfaden aktualisiert
- Cargo.toml: [[bin]] Sektion und deb assets angepasst

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10 09:46:34 +01:00
df4421af2f fix: Versteckte Dateien (.gitignore etc.) werden nicht mehr fälschlicherweise umbenannt
- Bugfix: Dateien mit führendem Punkt wurden zu "unnamed.xxx" umbenannt,
  da der Punkt fälschlicherweise als Extension-Trenner interpretiert wurde.
  Jetzt wird der führende Punkt als hidden_prefix separat behandelt.
- Alle Clippy-Warnungen behoben (redundanter Import, kollabierbare if-Blöcke,
  manuelle Range-Checks)
- CLAUDE.md für Projekt-Dokumentation hinzugefügt

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 09:07:30 +01:00
5997aad904 Aktualisierte Dateien 2025-03-20 04:29:34 +01:00
5ffbc526b9 Aktualisierte Dateien 2025-03-20 04:22:07 +01:00
a7cd38d871 Aktualisierte Dateien 2025-03-20 04:15:11 +01:00
71c1987080 Aktualisierte Dateien 2025-03-20 04:14:26 +01:00
e9b2674d35 Aktualisierte Dateien 2025-03-20 04:11:18 +01:00
f76630de5d Aktualisierte Dateien 2025-03-20 04:10:24 +01:00
fbbbf59a84 Aktualisierte Dateien 2025-03-20 04:06:04 +01:00
df1127b192 Aktualisierte Dateien 2025-03-20 04:03:21 +01:00
661dfc457c Aktualisierte Dateien 2025-03-20 03:32:02 +01:00
84708da7fc Aktualisierte Dateien 2025-03-20 03:28:01 +01:00
6dd8081978 Aktualisierte Dateien 2025-03-20 03:20:34 +01:00
42dd08df33 Aktualisierte Dateien 2025-03-20 03:19:01 +01:00
e970a5baf7 Aktualisierte Dateien 2025-03-20 03:08:16 +01:00
c1f3ee27dc Aktualisierte Dateien 2025-03-20 03:03:14 +01:00
9ce6618a12 Aktualisierte Dateien 2025-03-20 02:51:25 +01:00
70cfbd1ae8 Aktualisierte Dateien 2025-03-20 02:49:23 +01:00
8e258b8b18 Aktualisierte Dateien 2025-03-20 02:46:27 +01:00
f2f52b756e Aktualisierte README.md 2025-03-20 02:00:02 +01:00
3f9f4189f3 Aktualisierte README.md 2025-03-20 01:57:26 +01:00
e473ca7b8e Aktualisierte README.md 2025-03-18 05:28:38 +01:00
6375c52534 Aktualisierte README.md 2025-03-18 05:04:57 +01:00
a48dd82dff Aktualisiert Projekt_Struktur.txt 2025-03-18 04:35:08 +01:00
01e8abdc92 Aktualisierte README.md 2025-03-18 04:31:39 +01:00
0425f68966 Aktualisierte README.md 2025-03-18 04:26:54 +01:00
9162d0acda Aktualisierte README.md 2025-03-18 04:14:16 +01:00
276e474ed8 Aktualisierte README.md 2025-03-18 04:11:30 +01:00
8106e15bfd Aktualisierte README.md 2025-03-18 04:05:44 +01:00