woodruffw / toml2json

A very small CLI for converting TOML to JSON
https://crates.io/crates/toml2json
MIT License
64 stars 8 forks source link
cli json serde toml

toml2json

CI Crates.io

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. It can be installed via apk after enabling the testing repository.

apk add toml2json

Arch Linux

If you're using Arch Linux, you can install toml2json using an AUR helper. For example:

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:

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

Produces:

{
  "wow": "amazing"
}

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

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

Produces:

{
  "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.