|
| 1 | +# struct |
| 2 | + |
| 3 | +i got tired of `tree` showing me 3000 files inside `node_modules` and `venv` every single time, so i made this. |
| 4 | + |
| 5 | +## what it does |
| 6 | + |
| 7 | +it's basically `tree` but it doesn't spam your terminal with garbage you don't care about. |
| 8 | + |
| 9 | +```bash |
| 10 | +# instead of this nightmare: |
| 11 | +$ tree -L 3 |
| 12 | +venv/ |
| 13 | +├── lib/ |
| 14 | +│ ├── python3.11/ |
| 15 | +│ │ ├── site-packages/ |
| 16 | +│ │ │ ├── pip/ |
| 17 | +│ │ │ │ ├── __init__.py |
| 18 | +│ │ │ │ ├── (2000 MORE FILES YOU DON'T CARE ABOUT) |
| 19 | +
|
| 20 | +# you get this: |
| 21 | +$ struct 3 |
| 22 | +venv/ (2741 files ignored) |
| 23 | +``` |
| 24 | +
|
| 25 | +way better. |
| 26 | +
|
| 27 | +## install |
| 28 | +
|
| 29 | +```bash |
| 30 | +cargo build --release |
| 31 | +sudo cp target/release/struct /usr/local/bin/ |
| 32 | +``` |
| 33 | +
|
| 34 | +## usage |
| 35 | +
|
| 36 | +```bash |
| 37 | +struct 3 # depth 3 (like tree -L 3) |
| 38 | +struct -g 2 # only git-tracked files |
| 39 | +struct -s 100 3 # skip folders bigger than 100MB |
| 40 | +struct -i "*.log" 2 # custom ignores |
| 41 | +``` |
| 42 | +
|
| 43 | +## what gets auto-ignored |
| 44 | +
|
| 45 | +the usual suspects: |
| 46 | +- `venv`, `node_modules` (shows folder but not the 10000 files inside) |
| 47 | +- `__pycache__`, `.git`, `target` |
| 48 | +- `.vscode`, `.idea` |
| 49 | +- `chrome_profile` and other cache garbage |
| 50 | +- basically anything that clutters your output |
| 51 | +
|
| 52 | +folders still show up, you just see `venv/ (2741 files ignored)` instead of everything exploding. |
| 53 | +
|
| 54 | +## why rust |
| 55 | +
|
| 56 | +i wanted to learn rust and this seemed like a good starter project. also it's fast. |
| 57 | + |
| 58 | +## stuff it does |
| 59 | + |
| 60 | +- colors: blue folders, green executables |
| 61 | +- file counts next to ignored dirs |
| 62 | +- git mode to see only tracked files |
| 63 | +- size limits to skip massive folders |
| 64 | +- custom ignore patterns |
| 65 | + |
| 66 | +that's it. it's just `tree` but less annoying. |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +if you find bugs or want features, open an issue or whatever |
0 commit comments