[Top][All Lists]

[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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]