2025-05-16 11:50:54 +02:00
# TreeScanner CLI Verzeichnisscanner

2025-05-17 21:02:24 +02:00
**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)](https://github.com/realAscot/treeScannerASCII)
2025-05-17 13:23:04 +02:00
Der original treeScanner in Python ist unter < https: / / github . com / realAscot / treeScannerASCII > zu finden. Dieser ist auch als Python-Modul zu verwenden.
---
2025-05-16 11:50:54 +02:00
## Inhalt
- [TreeScanner CLI Verzeichnisscanner ](#treescanner-cli-verzeichnisscanner )
- [Inhalt ](#inhalt )
2025-05-17 21:02:24 +02:00
- [Beschreibung ](#beschreibung )
- [Installation ](#installation )
- [Über .zip Archiv ](#über-zip-archiv )
- [Installer ](#installer )
2025-05-16 11:50:54 +02:00
- [Struktur ](#struktur )
2025-05-17 21:02:24 +02:00
- [✨ Features ](#-features )
- [▶️ Verwendung ](#️ -verwendung )
- [🖼 Beispielausgabe ](#-beispielausgabe )
- [⚙️ Konfiguration `.treescanner.conf` ](#️ -konfiguration-treescannerconf )
- [🔍 Ort ](#-ort )
- [📘 Format ](#-format )
- [📝 Format (.toml) ](#-format-toml )
2025-05-24 03:23:44 +02:00
- [Build ](#build )
2025-05-16 11:50:54 +02:00
- [Lizenz ](#lizenz )
2025-05-24 03:23:44 +02:00
- [Eingesetzte Libraries (MIT-kompatibel) ](#eingesetzte-libraries-mit-kompatibel )
2025-05-17 21:02:24 +02:00
- [💬 Kontakt ](#-kontakt )
---
## 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
2025-05-16 11:50:54 +02:00
---
## Struktur
2025-05-16 13:51:03 +02:00
**GEPLANTE STRUKTUR (DEV)**
```plaintext
2025-05-17 21:02:24 +02:00
📁 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 #
2025-05-16 11:50:54 +02:00
```
---
2025-05-17 21:02:24 +02:00
## ✨ Features
2025-05-16 11:50:54 +02:00
2025-05-17 21:02:24 +02:00
- 📁 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
2025-05-17 13:23:04 +02:00
2025-05-16 11:50:54 +02:00
---
2025-05-17 21:02:24 +02:00
## ▶️ Verwendung
2025-05-17 13:23:04 +02:00
```bash
# 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
```
---
2025-05-17 21:02:24 +02:00
## 🖼 Beispielausgabe
2025-05-17 13:23:04 +02:00
```plaintext
2025-05-17 21:02:24 +02:00
2025-05-17 13:23:04 +02:00
📁 ./src/
├── 📄 main.rs #
├── 📁 app/ #
│ └── 📄 treebuilder.rs #
└── 📁 utils/ #
├── 📄 ascii_spinner.rs #
└── 📄 logger.rs #
2025-05-17 21:02:24 +02:00
```
---
## ⚙️ Konfiguration `.treescanner.conf`
### 🔍 Ort
Standardmäßig gesucht im **Benutzerverzeichnis** :
```plaintext
Windows: C:\Users\<Benutzername>\.treescanner.conf
Linux: /home/< user > /.treescanner.conf
```
### 📘 Format
### 📝 Format (.toml)
```toml
max_depth = 3
max_files_per_dir = 100
ignore = [".git", "target", ".vscode"]
output = "tree.txt"
viewonly = false
align_comments = false
2025-05-17 13:23:04 +02:00
```
2025-05-16 11:50:54 +02:00
2025-05-17 21:02:24 +02:00
- 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
2025-05-16 11:50:54 +02:00
---
2025-05-17 13:23:04 +02:00
2025-05-24 03:23:44 +02:00
## Build
2025-05-24 12:28:05 +02:00
Du benötigst zum selbst kompilieren eine funktionierende Toolchain.
Das Makefile steht Dir als anhalt zur Verfügung.
1. npm installieren ->
2025-05-24 03:23:44 +02:00
---
2025-05-17 13:23:04 +02:00
## Lizenz
2025-05-17 21:02:24 +02:00
Dieses Projekt steht unter der [MIT-Lizenz ](./LICENSE ).
2025-05-24 03:23:44 +02:00
### Eingesetzte Libraries (MIT-kompatibel)
2025-05-17 21:02:24 +02:00
| 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 ](./LICENSE )
---
## 💬 Kontakt
**Adam Skotarczak**
✉ [adam@skotarczak.net ](mailto:adam@skotarczak.net )
🔗 [realAscot auf GitHub ](https://github.com/realAscot )