Re: [PATCH 4/1] t3920: replace two cats with a tee
- From
René Scharfe <l.s.r@web.de>
- Date
- Dec 3, 2022, 08:43 UTC
- Message-ID
- <4611a23a-e7e9-6039-5d54-c2f8cadc2f73@web.de>
- In-Reply-To
- <CAPig+cQack=pJ04fwEiq81x6+2AAG4ni0Gd4GQgr4FS=PERb_Q@mail.gmail.com>
Am 03.12.22 um 06:09 schrieb Eric Sunshine:
Show 19 quoted lines
> On Fri, Dec 2, 2022 at 11:51 AM René Scharfe <l.s.r@web.de> wrote:
>> Use tee(1) to replace two calls of cat(1) for writing files with
>> different line endings. That's shorter and spawns less processes.
>> [...]
>> Signed-off-by: René Scharfe <l.s.r@web.de>
>> ---
>> diff --git a/t/t3920-crlf-messages.sh b/t/t3920-crlf-messages.sh
>> @@ -9,8 +9,7 @@ LIB_CRLF_BRANCHES=""
>> create_crlf_ref () {
>> - cat >.crlf-orig-$branch.txt &&
>> - cat .crlf-orig-$branch.txt | append_cr >.crlf-message-$branch.txt &&
>> + tee .crlf-orig-$branch.txt | append_cr >.crlf-message-$branch.txt &&
>
> This feels slightly magical and more difficult to reason about than
> using simple redirection to eliminate the second `cat`. Wouldn't this
> work just as well?
>
> cat >.crlf-orig-$branch.txt &&
> append_cr <.crlf-orig-$branch.txt >.crlf-message-$branch.txt &&It would work, of course, but this is the exact use case for tee(1). No repetition, no extra redirection symbols, just an nicely fitting piece of pipework. Don't fear the tee! ;-)
(I'm delighted to learn from https://en.wikipedia.org/wiki/Tee_(command) that PowerShell has a tee command as well.)
Show 5 quoted lines
> (Plus, this avoids introducing `tee` into the test suite, more or > less. The few existing instances are all from the same test author and > don't seem particularly legitimate -- they appear to be aids the > author used while developing the test to be able to watch its output > as it ran.)
I agree that the tee calls in t1001 and t5523 are unnecessary.
René