Skip to content

blinxen/tomli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Release tarball

wget https://github.com/blinxen/tomli/releases/download/$VERSION/tomli.tar.gz

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.bar or . (whole document)
  • Array indices, e.g. foo[0] or foo.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:

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

Add a new array called websites to the table package:

tomli set -f Cargo.toml package.websites[0] https://example.com

Add a new array called numbers to the table package and specify the type:

tomli set -f Cargo.toml --type int package.numbers[0] 5

Use dotted key notation instead of creating a subtable:

tomli set -f Cargo.toml --dotted-key --type bool package.version.workspace true

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.

About

Simple CLI for querying and editing TOML files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages