Repository navigation
Highlights
- 30+ new language detections — programming (C#, Scala, Lua, SQL, Dart, Elixir, Zig, R, F#, Haskell), templating + frontend (templ, JSX, TSX, SCSS, Sass, LESS, Vue, Svelte, ERB, Jinja, Liquid, Mustache/Handlebars), config (INI, dotenv, EditorConfig, Properties, HCL/Terraform, Nix), data (Protobuf, GraphQL, CSV, TSV, JSONL), build/task (Bazel, Groovy/Jenkinsfile, Justfile, Earthfile, Caddyfile). Plus XML split from HTML.
- `--files-from ` for Unix-composition piping. Use `-` for stdin:
```sh
rg --files | rak --files-from -
git ls-files '.go' | rak --files-from -
find . -name '.go' | rak --files-from -
gh pr diff 42 --name-only | rak --files-from -
``` - Lockfile exclusion by default. `go.sum`, `package-lock.json`, `Cargo.lock`, `Gemfile.lock`, etc. are skipped so counts reflect code your team wrote. Pass `--include-lockfiles` to restore v0.1.x counting behavior.
- Friendly error for non-regular paths (`rak /dev/null` → clear message).
- GoReleaser binaries for macOS + Linux (amd64 + arm64). Download below or `go install github.com/evanmschultz/rak/cmd/rak@v0.2.0`.
Breaking changes
- `.xml` files now report as `xml` in `total_by_lang` (was `html`).
- Lockfiles excluded by default. `--include-lockfiles` to restore v0.1.x behavior.
Bug fixes
- Stable sort: tie-bearing repos previously produced non-deterministic output across runs due to map randomization + unstable sort. `SortDirs` now uses `slices.SortStableFunc`.
- Explicit single-file lockfile invocation (`rak go.sum`) is now counted, not silently filtered.
Deferred to v0.3
Parallel walk + `--workers`, `--follow` symlink traversal (covered by `find -L | rak --files-from -` composition), token counting (`--tokens`), `--include-untracked`, Windows binaries + CI, spinner/progress.
Full changelog: v0.1.4...v0.2.0