# SourceAtlas
SourceAtlas is a command-line tool written in Rust that scans a source code repository and generates useful statistics.
I started this project as a way to learn Rust by building something practical instead of only completing exercises. The goal isn't to compete with existing tools, but to build a clean, well-structured application while learning more about idiomatic Rust and software engineering.
## Features
Current features include:
- Recursive directory scanning
- Ignores common build and IDE directories:
- `target`
- `build`
- `node_modules`
- `.idea`
- `.vscode`
- Reports:
- Directories scanned
- Files scanned
- Files analyzed
- Files skipped
- Total lines
- Gracefully skips unreadable or binary files
- Unit tested
## Installation
Install from crates.io:
```bash
cargo install sourceatlas
```
Or build from source:
```bash
git clone https://github.com/jesse-kroon/sourceatlas.git
cd sourceatlas
cargo build --release
```
## Usage
Scan the current directory:
```bash
sourceatlas scan .
```
Scan another directory:
```bash
sourceatlas scan /path/to/project
```
## Example Output
```text
-------------
Scanning Git repo
LANGUAGE STATS
Rust: 100.0%
DIRECTORIES
--------
total directories: 4
TOTALS
--------
total files found: 13
total files analyzed: 7
total files skipped: 6
total lines: 425
```
*The above output is generated when running SourceAtlas on itself*
## Roadmap
Some features I'd like to add:
- More visually appealing report generation
- Custom ignore files
- JSON output
- Markdown reports
## License
This project is licensed under the MIT License.