bin+lib kq

A jq-like cli tool that can query and transform kdl right in the command line

5 releases (stable)

1.0.6 Oct 22, 2021
1.0.4 Oct 19, 2021
0.1.0 Sep 13, 2021

Custom license

53KB
1.5K SLoC

kq

Crates.io - version Crates.io - download docs.rs

A jq-like cli tool that can query and transform KDL document right in the command line.

|| and Map Operator are not supported yet.

Installation

Pre-built binaries

You can find prebuilt binaries for Linux, macOS and Windows in the release page.

Cargo

$ cargo install kq

Container

$ docker run ghcr.io/jihchi/kq -v

Usage

$ kq -h
Usage: kq [options] <selector>

Options:
    -h, --help          print this help menu
    -v, --version       print the version

Examples

Modified from https://github.com/kdl-org/kdl/blob/1.0.0/QUERY-SPEC.md#examples

Given following content:

$ cat example.kdl
package {
    name "foo"
    version "1.0.0"
    dependencies platform="windows" {
        winapi "1.0.0" path="./crates/my-winapi-fork"
    }
    dependencies {
        miette "2.0.0" dev=true
    }
}
$ cat example.kdl | kq "package name"
name "foo"
$ cat example.kdl | kq "dependencies"
dependencies platform="windows" {
    winapi "1.0.0" path="./crates/my-winapi-fork"
}
dependencies {
    miette "2.0.0" dev=true
}
$ cat example.kdl | kq "dependencies[platform]"
dependencies platform="windows" {
    winapi "1.0.0" path="./crates/my-winapi-fork"
}
$ cat example.kdl | kq "dependencies > []"
winapi "1.0.0" path="./crates/my-winapi-fork"
miette "2.0.0" dev=true

Dependencies

~5.5MB
~105K SLoC