Commit graph

47 commits

Author SHA1 Message Date
jamulix
5f283b0fb1 Bump Version auf 0.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
jamulix
4c2828c4f0 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
jamulix
568806e10c 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
jamulix
a348487f6a 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
jamulix
1b9ad5a74f 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
jamulix
77aa782718 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
jamulix
bcbd64fd91 release: Version 0.2.0 mit Statistiken und CHANGELOG
- 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
jamulix
fee28fa213 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
jamulix
de7c91a52a 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
jamulix
835e9b8761 chore: CLAUDE.md aus Repository entfernt (nur lokal behalten) 2026-02-10 10:20:44 +01:00
jamulix
34f7b26963 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
jamulix
d3c6ae2503 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
jamulix
608acaffc6 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
jamulix
0972ca4d6b 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
jamulix
870c49297a 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
jamulix
010b5ad8af 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
jamulix
227a1bd7b4 Aktualisierte Dateien 2025-03-20 04:29:34 +01:00
jamulix
e8a445a7c7 Aktualisierte Dateien 2025-03-20 04:22:07 +01:00
jamulix
d3a17f93ee Aktualisierte Dateien 2025-03-20 04:15:11 +01:00
jamulix
0e32e51f7a Aktualisierte Dateien 2025-03-20 04:14:26 +01:00
jamulix
a05b81d0d1 Aktualisierte Dateien 2025-03-20 04:11:18 +01:00
jamulix
50999c3a2b Aktualisierte Dateien 2025-03-20 04:10:24 +01:00
jamulix
2cf9d38ac1 Aktualisierte Dateien 2025-03-20 04:06:04 +01:00
jamulix
ffb33eca58 Aktualisierte Dateien 2025-03-20 04:03:21 +01:00
jamulix
9a43c63512 Aktualisierte Dateien 2025-03-20 03:32:02 +01:00
jamulix
0260e8113b Aktualisierte Dateien 2025-03-20 03:28:01 +01:00
jamulix
438a3133b8 Aktualisierte Dateien 2025-03-20 03:20:34 +01:00
jamulix
bc4b225ee5 Aktualisierte Dateien 2025-03-20 03:19:01 +01:00
jamulix
4cd405dd74 Aktualisierte Dateien 2025-03-20 03:08:16 +01:00
jamulix
d8ce99cec1 Aktualisierte Dateien 2025-03-20 03:03:14 +01:00
jamulix
34614f634c Aktualisierte Dateien 2025-03-20 02:51:25 +01:00
jamulix
5c51cc5c09 Aktualisierte Dateien 2025-03-20 02:49:23 +01:00
jamulix
7e6cdcaf21 Aktualisierte Dateien 2025-03-20 02:46:27 +01:00
jamulix
1f8febe2a9 Aktualisierte README.md 2025-03-20 02:00:02 +01:00
jamulix
56f503abb4 Aktualisierte README.md 2025-03-20 01:57:26 +01:00
jamulix
e7f05ac74e Aktualisierte README.md 2025-03-18 05:28:38 +01:00
jamulix
af340fc234 Aktualisierte README.md 2025-03-18 05:04:57 +01:00
jamulix
c61627dd67 Aktualisiert Projekt_Struktur.txt 2025-03-18 04:35:08 +01:00
jamulix
1fb2cc92d0 Aktualisierte README.md 2025-03-18 04:31:39 +01:00
jamulix
eb1c58024b Aktualisierte README.md 2025-03-18 04:26:54 +01:00
jamulix
48a7e63472 Aktualisierte README.md 2025-03-18 04:14:16 +01:00
jamulix
abea92c16b Aktualisierte README.md 2025-03-18 04:11:30 +01:00
jamulix
bd37812564 Aktualisierte README.md 2025-03-18 04:05:44 +01:00
jamulix
a6113338ec Aktualisierte README.md 2025-03-18 03:50:39 +01:00
jamulix
25eac25d40 Entferne .gitignore aus dem Repository 2025-03-18 03:39:10 +01:00
jamulix
73e5ad1d7c Aktualisierte README.md 2025-03-18 03:33:55 +01:00
jamulix
de31fb2be8 Initial commit 2025-03-18 03:05:18 +01:00