Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Tool Detection System

Batuta discovers external transpilers (depyler, decy, bashrs) and analysis tools (pmat, renacer) at runtime through PATH-based lookup.

Detection Process

  1. Search PATH for the binary name
  2. Run <tool> --version to get the version
  3. Compare against minimum required version
  4. Cache the result in .batuta/cache/tool_versions.json

Tool Registry

ToolBinaryMin VersionPurpose
depylerdepyler0.5.0Python to Rust
decydecy0.3.0C/C++ to Rust
bashrsbashrs0.2.0Shell to Rust
pmatpmat0.8.0Static analysis, TDG
renacerrenacer0.7.0Syscall tracing

Checking Tools

batuta analyze --check-tools

Output:

Tool Detection Report:
  depyler  v3.20   ~/.cargo/bin/depyler   [OK]
  decy     v0.3.1  ~/.cargo/bin/decy      [OK]
  bashrs   v6.65   ~/.cargo/bin/bashrs    [OK]
  pmat     v0.8.3  ~/.cargo/bin/pmat      [OK]
  renacer  v0.10.0 ~/.cargo/bin/renacer   [OK]

Version Mismatch Handling

ConditionBehavior
Tool found, version OKProceed normally
Tool found, version oldError with upgrade instructions
Tool not foundError with install instructions

Fallback Behavior

Configure in batuta.toml:

[pipeline]
# strict: fail if any tool missing (default)
# lenient: skip unsupported languages, warn only
missing_tool_policy = "strict"

Cache Behavior

Tool detection results are cached to avoid repeated PATH lookups. The cache is invalidated when:

  • The PATH environment variable changes
  • A tool binary is newer than the cache entry
  • The cache is older than 24 hours

Force re-detection:

rm .batuta/cache/tool_versions.json
batuta analyze --check-tools

Navigate: Table of Contents