Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/woodruffw/toml2json

A very small CLI for converting TOML to JSON
https://github.com/woodruffw/toml2json

cli json serde toml

Last synced: 2 days ago
JSON representation

A very small CLI for converting TOML to JSON

Awesome Lists containing this project

README

        

toml2json
=========

[![CI](https://github.com/woodruffw/toml2json/actions/workflows/ci.yml/badge.svg)](https://github.com/woodruffw/toml2json/actions/workflows/ci.yml)
[![Crates.io](https://img.shields.io/crates/v/toml2json)](https://crates.io/crates/toml2json)

A command-line tool that converts TOML to JSON. Nothing more, nothing less.

## Installation

### Cargo

```
$ cargo install toml2json
```

### Alpine Linux

`toml2json` is available for [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=toml2json&branch=edge). It can be installed via [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) after enabling the [testing repository](https://wiki.alpinelinux.org/wiki/Repositories).

```bash
apk add toml2json
```

### Arch Linux

If you're using Arch Linux, you can install `toml2json` using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). For example:

```bash
paru -S toml2json
```

### Nixpkgs

```
nix-env --install toml2json
```

Please let us know if you package `toml2json` for another package manager or ecosystem!

## Usage

Convert TOML on `stdin` to JSON, filtering it through `jq`:

```bash
$ toml2json <<< 'wow = "amazing"' | jq
```

Produces:

```json
{
"wow": "amazing"
}
```

Convert TOML from a file and pretty-print it without `jq`:

```bash
$ toml2json --pretty ~/.config/kbs2/kbs2.conf
```

Produces:

```json
{
"age-backend": "RageLib",
"error-hook": "~/.config/kbs2/hooks/error-hook-notify",
"keyfile": "REDACTED-GO-AWAY",
"public-key": "REDACTED-GO-AWAY",
"reentrant-hooks": false,
"store": "~/.kbs2-store",
"wrapped": true,
"generators": [
{
"alphabet": "abcdefghijklmnopqrstuvwxyz0123456789(){}[]-_+=",
"length": 16,
"name": "default"
}
],
"commands": {
"edit": {
"editor": "subl -w",
"post-hook": "~/.config/kbs2/hooks/push-repo"
},
"new": {
"generate-on-empty": true,
"post-hook": "~/.config/kbs2/hooks/push-repo"
},
"pass": {
"clear-after": true,
"clear-hook": "~/.config/kbs2/hooks/pass-clear-notify",
"clipboard-duration": 10,
"x11-clipboard": "Clipboard"
},
"rm": {
"post-hook": "~/.config/kbs2/hooks/push-repo"
}
}
}
```

Amazing. What more could you want? Hopefully nothing, because it will never do anything else.