Adam Skotarczak 0652a34486
ready2merge
- voll funktionsfähige Version
- kann auf GitHub hochgeladen werden
2025-05-17 21:02:24 +02:00
wip
2025-05-17 00:38:45 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 13:23:04 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00
2025-05-17 21:02:24 +02:00

TreeScanner CLI Verzeichnisscanner

TreeScanner-Logo

TreeScanner ist ein leichtgewichtiges, portables CLI-Tool zur rekursiven Analyse von Verzeichnisstrukturen. Es erzeugt eine klar strukturierte ASCII-Ausgabe und eignet sich hervorragend für Dokumentation, Debugging oder Buildsysteme.

🔧 Diese Version ist eine komplette Neuentwicklung in Rust und ersetzt das ursprüngliche Python-Projekt:
treeScannerASCII (Python)

Der original treeScanner in Python ist unter https://github.com/realAscot/treeScannerASCII zu finden. Dieser ist auch als Python-Modul zu verwenden.


Inhalt


Beschreibung

Der treeScanner.exe ist ursprünglich als ein Tool entwickelt worden mit dem man Verzeichnisstrukturen für Dokumentationen erzeugen konnte.
TreeScanner durchsucht Verzeichnisse rekursiv, filtert optional bestimmte Ordner aus und gibt eine strukturierte ASCII-Baumdarstellung mit Icons und optional ausgerichteten Kommentaren aus.
Er eignet sich für technische Dokumentationen, Versionskontrollen, Release-Skripte und CI/CD-Prozesse.


Installation

Über .zip Archiv

Installer

Der Installer treeScanner-Setup.exe der jeweils die aktuelle Version auf GitHub enthällt, bietet Dir an das Programm im Windows-Verzeichnis zu installieren. Dies ist zwar unüblich aber


Struktur

GEPLANTE STRUKTUR (DEV)


📁 treeScanner                           #
├── 📁 .cargo                            #
│   └── 📄 config.toml                   #
├── 📁 .vscode                           #
│   └── 📄 tasks.json                    #
├── 📁 media                             #
│   ├── 📄 logo-treescanner.png          #
│   └── 📄 logo-treescanner_512x512.png  #
├── 📁 resources                         #
│   ├── 📄 icon.ico                      #
│   └── 📄 version.rc                    #
├── 📁 src                               #
│   ├── 📁 app                           #
│   │   ├── 📄 mod.rs                    #
│   │   └── 📄 treebuilder.rs            #
│   ├── 📁 config                        #
│   │   ├── 📄 args.rs                   #
│   │   ├── 📄 loader.rs                 #
│   │   └── 📄 mod.rs                    #
│   ├── 📁 utils                         #
│   │   ├── 📄 ascii_spinner.rs          #
│   │   ├── 📄 logger.rs                 #
│   │   └── 📄 mod.rs                    #
│   ├── 📄 lib.rs                        #
│   └── 📄 main.rs                       #
├── 📁 tests                             #
│   ├── 📄 config_tests.rs               #
│   └── 📄 treebuilder_tests.rs          #
├── 📄 .gitignore                        #
├── 📄 build.rs                          #
├── 📄 Cargo.lock                        #
├── 📄 Cargo.toml                        #
├── 📄 CHANGELOG.md                      #
├── 📄 LICENSE                           #
├── 📄 Makefile                          #
├── 📄 README.md                         #
└── 📄 VERSION                           #


Features

  • 📁 ASCII-Baumdarstellung mit Icons (📁, 📄)
  • 🚫 Ignorierliste per CLI oder Konfig-Datei
  • Limit für Tiefe (--max-depth) und Dateianzahl pro Verzeichnis
  • 📄 Ausgabe in Datei oder Konsole
  • ⚙ Konfigurierbar via ~/.treescanner.conf
  • 🌀 Fortschrittsanzeige beim Scannen (Spinner)
  • 💬 Optionale Kommentarspalte (--align-comments)
  • 🧪 Getestete Komponenten (unit-tested)
  • 🔕 Silent-Modus (--quiet)
  • 🛠 Portable Binary (.exe) ohne externe Abhängigkeiten

▶️ Verwendung

# Einfacher Scan (aktuelles Verzeichnis)
./treescanner.exe

# Mit Tiefe 3, ohne speichern
./treescanner.exe --max-depth 3 --viewonly

# Mit Kommentar-Ausrichtung
./treescanner.exe --align-comments

# Ergebnis in Datei mit anderem Pfad speichern
./treescanner.exe --output ./struktur/tree.md

🖼 Beispielausgabe


📁 ./src/
├── 📄 main.rs               #
├── 📁 app/                  #
│   └── 📄 treebuilder.rs    #
└── 📁 utils/                #
    ├── 📄 ascii_spinner.rs  #
    └── 📄 logger.rs         #


⚙️ Konfiguration .treescanner.conf

🔍 Ort

Standardmäßig gesucht im Benutzerverzeichnis:

Windows:  C:\Users\<Benutzername>\.treescanner.conf
Linux:    /home/<user>/.treescanner.conf

📘 Format

📝 Format (.toml)

max_depth = 3
max_files_per_dir = 100
ignore = [".git", "target", ".vscode"]
output = "tree.txt"
viewonly = false
align_comments = false
  • CLI-Einstellungen überschreiben Konfigurationswerte bei Kollision
  • Die Datei wird beim ersten Start automatisch erzeugt, falls sie fehlt
  • Der Pfad ist nicht fest kodiert, sondern dynamisch via dirs::home_dir() ermittelt

Lizenz

Dieses Projekt steht unter der MIT-Lizenz.

Eingesetzte Libraries (MIT-kompatibel):

Crate Lizenz
clap MIT/Apache
dirs MIT/Apache
serde MIT/Apache
serde_derive MIT/Apache
toml MIT/Apache
tempfile MIT/Apache (nur für Tests)
console MIT

⚠️ Alle eingebundenen Libraries sind MIT- oder Apache-2.0-kompatibel und dürfen ohne Einschränkungen in proprietären oder Open-Source-Projekten verwendet werden.

siehe LICENSE


💬 Kontakt

Adam Skotarczak
adam@skotarczak.net
🔗 realAscot auf GitHub

Description
Port des Treescanners nach Rust
https://github.com/realAscot/treeScanner
Readme 921 KiB
v1.1.0 Latest
2025-06-24 14:23:36 +02:00
Languages
Rust 95.8%
Makefile 4.2%