Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Aug 2010 16:01:29 +0000
From:      Alexander Best <arundel@freebsd.org>
To:        Anonymous <swell.k@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: tiny patch to prevent head from closing pipes
Message-ID:  <20100828160129.GA88842@freebsd.org>
In-Reply-To: <86aao694tm.fsf@gmail.com>
References:  <20100828141625.GA69240@freebsd.org> <86aao694tm.fsf@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat Aug 28 10, Anonymous wrote:
> Alexander Best <arundel@freebsd.org> writes:
> 
> > hi there,
> >
> > i just had subversion complain about a broken pipe while piping its output
> > through awk straight to head [1]. i decided to add a switch to head which will
> > tell it to never close a pipe unless the input has stopped [2].
> 
> You can do same with sh(1), e.g.
> 
>   $ svn log | (IFS=; while read li; do [ $((i+=1)) -le 10 ] && echo "$li"; done)
> 
> versus
> 
>   $ svn log | (IFS=; while read li && [ $((i+=1)) -le 10 ]; do echo "$li"; done)
>   ...
>   svn: Write error: Broken pipe
> 
> 
> But I think subversion should
> 
> > there's probably a much more efficient way of discarding the input without
> > closing the pipe unless the input ceased. it's just a 5 minute hack in order to
> > see if people find the idea useful or not. ;)
> 
> Can you give an example of usefulness that does not involve subversion?

no, but this should be valid for all applications which return an error if the
pipe gets closed by the receiving end.

of course it's possible to implement the features to head i added in form of a
sh(1) script. i understand that your point is, that there is already a way of
keeping the pipe open and that the unix philosophy states that no two programs
should share the same functionality.

on the other hand you don't really need head and tail at all then, because
their functionality could also be implemented in form of a script. ;) i hope
you get my point.

cheers.
alex

-- 
a13x



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100828160129.GA88842>