# hq
[](https://github.com/miller-time/hq/actions/workflows/rust.yml)
[](https://crates.io/crates/hq-rs)
[](https://docs.rs/hq-rs/latest)
`hq` is a command-line HCL processor.
## install
This will install an `hq` binary on your system:
```
$ cargo install hq-rs
```
## usage
Here is an example HCL file:
```hcl
some_attr = {
foo = [1, 2]
bar = true
}
some_block "some_block_label" {
attr = "value"
}
some_block "another_block_label" {
attr = "another_value"
}
```
You can query the attribute(s) and block(s) in an HCL file like so:
```sh
```hcl
{
foo = [
1,
2
]
bar = true
}
```
```sh
```hcl
[
1,
2
]
```
```sh
```hcl
some_block "some_block_label" {
attr = "value"
}
some_block "another_block_label" {
attr = "another_value"
}
```
```sh
```hcl
"value"
```
```sh
```hcl
"another_value"
```
You can modify HCL (even HCL that is formatted and contains comments) like so:
```sh
```hcl
some_attr = {
foo = [1, 2]
bar = true
}
some_block "some_block_label" {
attr = "value"
}
some_block "another_block_label" {
attr = "another_value"
}
# this is a block comment
fmt_block "fmt_label" {
# this is a body comment
# this is another body comment
# this is a third body comment
first_formatted_field = "something_new"
second_formatted_field = "second_value"
}
```