tomli
tomli is a format preserving command-line tool for querying and editing TOML files.
This project is currently under development and the command-line interface can change at any time.
Installation
Using Cargo
cargo install tomli
Usage
By default, tomli will read from stdin unless --filepath is specified.
Query expressions
tomli tries to use the same syntax as jq for query expressions.
The following expressions are currently supported:
- Key and table identifier paths, e.g
foo.baror.(whole document) - Array indices, e.g.
foo[0]orfoo.bar[0][1]
Query TOML files
Examples:
Get the value of the name key from the package table:
tomli query -f Cargo.toml package.name
Get the first element of the array called bin:
tomli query -f Cargo.toml bin[0]
Edit TOML files
tomli currently supports the following types when setting a value:
- str (String)
- int (64-bit signed integer)
- float (64-bit floating point)
- bool (Boolean)
The value type can be specified with the --type argument.
If not type is specified, then str is used.
Examples:
Add a new key to the package table called website:
tomli set -f Cargo.toml package.website https://example.com
Set the name of the first element in the bin array to tumli:
tomli set -f Cargo.toml bin[0].name tumli
Add a new table called website to the first element of the bin array:
tomli set -f Cargo.toml bin[0].website.url https://example.com
Delete name in the table package:
tomli delete -f Cargo.toml package.name
Delete the first element in the array authors:
tomli delete -f Cargo.toml package.authors[0]
License
The source code is primarily distributed under the terms of the MIT License. See LICENSE for details.