kq 1.0.6

A jq-like cli tool that can query and transform kdl right in the command line
Documentation
use std::error;
use std::io::{self, Read};

mod cli;

fn main() -> Result<(), Box<dyn error::Error>> {
    let args = cli::Args::new()?;

    if args.help() {
        args.print_help();
        return Ok(());
    }

    if args.version() {
        args.print_version();
        return Ok(());
    }

    let query = match args.get_query() {
        Some(query) => query,
        None => {
            args.print_help();
            return Ok(());
        }
    };

    let mut buffer = String::new();
    let mut stdin = io::stdin();
    stdin.read_to_string(&mut buffer)?;

    let nodes = kdl::parse_document(buffer)?;
    let nodes = kq::query_document(query, nodes)?;
    nodes.iter().for_each(|node| println!("{}", node));

    Ok(())
}