A minimal command-line tool to query canonical s-expressions (csexp) from stdin.
opam install csexp-querycsexp-query QUERYReads a csexp s-expression from stdin, applies the query, and outputs results (one csexp per line).
| Operation | Syntax | Description |
|---|---|---|
| field | (field NAME) |
Find (NAME value) pairs, return values |
| index | (index N) |
Get Nth element (0-indexed, negative supported) |
| each | each |
Iterate over list elements |
| pipe | (pipe E1 E2 ...) |
Sequential composition |
| cat | (cat E1 E2 ...) |
Concatenate results of independent queries |
| this | this |
Identity |
Multiple top-level expressions are implicitly piped.
# Get a field value
dune describe --format=csexp | csexp-query '(field name)'
# Get the first element
dune describe --format=csexp | csexp-query '(index 0)'
# Iterate over a list field
dune describe --format=csexp | csexp-query '(field modules) each'
# Get multiple fields
dune describe --format=csexp | csexp-query '(cat (field name) (field version))'
# Chain operations
dune describe --format=csexp | csexp-query '(index 0) (field name)'The query syntax is compatible with a subset of sexp.
- 0: Success (including empty result)
- 1: Parse error or query error