On 18/09/2024 15:28, Matt Liberty wrote:
I'm not trying to capture the exit status of git but of grep. Compare
it to "yes|grep -q y" which doesn't generate any error even though yes
generates endless output.
Sorry, I'd misunderstood your original message. So the problem is that
you want "git submodule status" to be quiet (i.e. not print an error
message) when it dies of SIGPIPE?
Best Wishes
Phillip
Matt
On Wed, Sep 18, 2024 at 3:05 AM Phillip Wood <phillip.wood123@xxxxxxxxx
<mailto:phillip.wood123@xxxxxxxxx>> wrote:
Hi Matt
On 16/09/2024 16:08, Matt Liberty wrote:
>
> If I try to grep the output I get a fatal error:
>
> % git submodule status --recursive | grep -q "^+"
> fatal: failed to recurse into submodule 'tools/OpenROAD'
>
> I didn't expect any output but did want the return status (0). I'm
> guessing git is unhappy that grep -q exits on the first occurrence of
> the pattern. I don't feel fatal is appropriate here.
I assume git is dying with SIGPIPE. As the only purpose of "git
submodule status" is to write the status information to stdout that
sounds reasonable. If you want to collect the exit status you need to
consume the whole output so that the command runs to completion.
Best Wishes
PhillipSo
> I can work around this by writing to a tmpfile but would like to see
> this addressed.
>
> Thanks!
> Matt
>