[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Line wrapping in YAML output
From: |
Eric Wong |
Subject: |
Re: Line wrapping in YAML output |
Date: |
Tue, 16 Jun 2020 04:19:38 +0000 |
James Rowe <jnrowe@gmail.com> wrote:
> * Eric Wong (e@80x24.org) wrote:
> > James Rowe <jnrowe@gmail.com> wrote:
> > > I routinely find myself needing to use a “real language” when I want
> > > to perform a quick hack with dtas purely to workaround the default line
> > > wrapping in YAML output. With unwrapped output sed/awk would often be
> > > a viable solution from the shell prompt.
> >
> > Understandable. Do you use dtas-ctl or some other socket tool?
>
> Pretty much always parsing dtas-ctl, because I hardly ever seem to
> have a {nc,socat}-style tool with SOCK_SEQPACKET support.
It's not well-documented, but socat supports setting type= to
the numeric value of SOCK_SEQPACKET. At least on Linux,
SOCK_SEQPACKET is 5 (ruby -rsocket -e 'puts Socket::SOCK_SEQPACKET'):
echo current | socat UNIX-CONNECT:$HOME/.dtas/player.sock,type=5 -
> > On the flip side, one of the reasons I picked YAML over JSON is
> > the indented + wrapped-by-default nature made it
> > $EDITOR-friendly.
>
> I hadn’t thought it through all that much, which is why I was asking
> about possible drawbacks.
>
> You’ve pushed me enough to think that dropping a yaml2json¹ script in
> ~/bin would often be enough for many of my use cases. That simple
> change would allow fancy jid²/jq³ support along with hacky sed/awk
> scripts.
Cool. Fwiw, I also just found "yq" looking for a jq-like thing
for YAML: https://kislyuk.github.io/yq/
I haven't tried yq, and have no plans to: I prefer to avoid
software unless it's been in Debian for a while.
> > > Given that psych supports an options mapping where setting
> > > ``line_width: -1`` disables wrapping entirely, I’m wondering if there
> > > would be support for disabling the line wrapping. I’m also wondering if
> > > I’m missing some drawbacks to doing so.
> >
> > My patch below seems to work. The dtas-*edit tools had to be
> > updated for $EDITOR-friendliness.
>
> Oh wow, thanks! WFM, but I’ll add that I didn’t expect you to do the
> work ;)
No problem, I was curious how long much effort it took and
it wasn't much, at all.
> > dtas-ctl output could become difficult-to-read on the terminal;
> > maybe it could detect stdout is a terminal and rewrap in that
> > case.
>
> I’m not really a fan of fiddling with behaviour on isatty(), as it
> quietly changes behaviour when you’re perhaps not expecting it. Lots of
> tools do it though, so perhaps it is just me.
Yeah, it's a bit surprising sometimes. I often run commands in my
$EDITOR buffer and it wouldn't help that case.
> So… I’m not unsure whether I still want this change. There are
"not unsure"? Based on the rest of what you've written,
I think you meant just to write either "unsure" or "not sure"?
> workarounds with few drawbacks, and nobody else appears to have
> complained in the previous seven years about this.
AFAIK, you're maybe the 3rd user of this? :)
I'm not exactly good at promoting software and have no plans
to break out of my introvert comfort zone :>
Anyways, I'm not inclined to change this, either; since
reformatting YAML or converting to JSON is pretty easy
in Ruby/Perl/Python.