Problem
Ix does not currently parse .sh, .bash, or .zsh files. Shell scripts are treated as unrecognized and excluded from analysis, meaning automation logic, deployment scripts, and developer tooling written in shell are invisible to the system.
Proposed solution
Add a Bash/Shell parser that can identify and extract:
- Function definitions
- Variable declarations and exports
- Control flow (e.g.
if, for, while, case)
- Command invocations and pipelines
- Source/import statements (e.g.
source, .)
- Shebang lines (e.g.
#!/bin/bash, #!/usr/bin/env zsh)
- Exit codes and error handling patterns (e.g.
set -e, trap)
Support the following file patterns: *.sh, *.bash, *.zsh
Why it matters
Shell scripts are the glue of most software projects — handling builds, deployments, environment setup, CI steps, and developer workflows. Without parsing them, Ix cannot reason about how automation is structured, what commands are invoked, or how scripts relate to the broader codebase. This gap is especially significant in infrastructure and DevOps-heavy repos where shell scripts are a primary operational artifact.
Merge requirements
Before this can be merged to main, the following must pass:
Problem
Ix does not currently parse
.sh,.bash, or.zshfiles. Shell scripts are treated as unrecognized and excluded from analysis, meaning automation logic, deployment scripts, and developer tooling written in shell are invisible to the system.Proposed solution
Add a Bash/Shell parser that can identify and extract:
if,for,while,case)source,.)#!/bin/bash,#!/usr/bin/env zsh)set -e,trap)Support the following file patterns:
*.sh,*.bash,*.zshWhy it matters
Shell scripts are the glue of most software projects — handling builds, deployments, environment setup, CI steps, and developer workflows. Without parsing them, Ix cannot reason about how automation is structured, what commands are invoked, or how scripts relate to the broader codebase. This gap is especially significant in infrastructure and DevOps-heavy repos where shell scripts are a primary operational artifact.
Merge requirements
Before this can be merged to main, the following must pass:
ix mapon a known TS/JS repo, verify counts unchanged)npm testinix-cli)exportstatements ingestedsourceand.calls resolved and linked to target file where possibleset -e,trap) visible on their containing script.sh,.bash,.zshix textreturns results withlanguage: bashix containsreturns members for a known shell script