Re: [PATCH] generate-cmdlist: re-implement as shell script
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Aug 20, 2015, 18:18 UTC
- Message-ID
- <CAPig+cRgMTZ1DUgcFHn+S0nZaRf-5NAWdhPnALwR4TqJPqcO6w@mail.gmail.com>
- In-Reply-To
- <xmqqmvxl7u0l.fsf@gitster.dls.corp.google.com>
On Thu, Aug 20, 2015 at 1:24 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes:
>> +sed -n '
>> + 1,/^### common groups/b
>> + /^### command list/q
>> + /^#/d; /^[ ]*$/b
>> + h;s/^[^ ][^ ]*[ ][ ]*\(.*\)/ N_("\1"),/p
>> + g;s/^\([^ ][^ ]*\)[ ].*/\1/w '$tmp'
>> + '
>> +printf '};\n\n'
>
> Unfortunately, this does not seem to work for me. Even though sed
> stops reading after seeing the "### command list" line, I suspect
> that its stdin buffer has been filled with other lines that follow
> it from the input to the buffer size, consuming what you meant to
> feed the later 'grep $matchgrp"' with.
>
> This is a one-time thing, so I do not mind to update the Makefile
> so that it does not feed command-list.txt from the standard input
> but gives the path as "$1" to this script.The original generate-cmdlist.sh doesn't take any arguments and just hardcodes "command-list.txt". Feeding it instead on stdin seemed a nice way to avoid reading the file twice, but alas is too fragile. I don't mind passing it as an argument either, or just hardcoding it again (though my preference leans toward passing it as an argument).