[HN Gopher] Show HN: Flatito, grep for YAML and JSON files
___________________________________________________________________
Show HN: Flatito, grep for YAML and JSON files
It is a kind of grep for YAML and JSON files. It allows you to
search for a key and get the value and the line number where it is
located. I created this tool because I sometimes struggle to find
specific keys in typical i18n rails yamls. In the views, you don't
always have the whole key, but it is extrapolated from the context.
I am sure there are other use cases; I hope you find it useful.
Cheers!
Author : ceritium
Score : 50 points
Date : 2024-03-25 14:30 UTC (8 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| Yasuraka wrote:
| What I often use to just get the full key paths is yq
| (https://github.com/mikefarah/yq), piping into grep when
| necessary yq -o=props <file>
|
| e.g. kind = Ingress metadata.name = hello
| spec.rules.0.host = localhost
| spec.rules.0.http.paths.0.pathType = ImplementationSpecific
| spec.rules.0.http.paths.0.backend.service.name = hello
| spec.rules.0.http.paths.0.backend.service.port.number = 80
|
| The one drawback I've encountered so far are multi-doc files - yq
| can certainly handle those, but you have to script the loop
| yourself.
| dimatura wrote:
| So I see that the name is derived from an esperanto word
| (apparently meaning "flatter") but in spanish it would also mean
| a small burp ("flato" being an informal term for burp). Which I
| still like as a name ;)
| selimnairb wrote:
| My brain saw "fellatio" at first.
| crorella wrote:
| Flatito means "little burp" in Chilean Spanish
| elondaits wrote:
| In Argentina a "flato" is a flatulence, and flatito would mean
| a little fart.
| eddd-ddde wrote:
| It's funny being a native Spanish speaker, and seeing other
| Spanish speakers talk about words you have never ever heard of
| before.
| ceritium wrote:
| Hi! Author here! I am spanish, flato means that, but it's also
| that pain in the side of the belly when you are running.
| llimllib wrote:
| related project, gron: https://github.com/tomnomnom/gron
| > gron
| "https://api.github.com/repos/tomnomnom/gron/commits?per_page=1"
| | fgrep "commit.author" json[0].commit.author = {};
| json[0].commit.author.date = "2016-07-02T10:51:21Z";
| json[0].commit.author.email = "mail@tomnomnom.com";
| json[0].commit.author.name = "Tom Hudson";
| wewtyflakes wrote:
| Looks neat, but what happens if a JSON key has a value like
| "foo.bar" or "foo[0]", etc. Does the textual response escape
| them?
| matja wrote:
| Yes: json = {}; json["foo.bar"] =
| true; json["foo[0]"] = true;
| ratrocket wrote:
| This looks cool!
|
| It doesn't do quite the same thing, but a tool I've had good luck
| with for quick-n-dirty grepping of JSON is gron:
|
| https://github.com/tomnomnom/gron
|
| (which I'm sure I learned about from a thread like this on HN...)
|
| It sort of "flattens out" your JSON to allow you to do whatever
| you want to it (grepping, for one thing!). Then you can even turn
| gron's output back into JSON with `ungron`.
|
| Maybe someone will find it a useful toolbox addition, much like
| the Flatito looks to be!
| account-5 wrote:
| Is this different from yq?
| ceritium wrote:
| Hi, I didn't know about yq until now; as far as I can see, it
| seems to allow complex queries and manipulations and handle
| more formats. Flatito, on the contrary, only handles YAML and
| JSON. It can look in a whole directory, and most importantly
| for me, it shows the line number needed to locate the value.
| gxonatano wrote:
| This is the kind of thing Nushell is already really good at.
___________________________________________________________________
(page generated 2024-03-25 23:01 UTC)