Messages in this thread | | | Date | Wed, 8 Dec 2021 17:02:26 +0000 | From | Eric Wong <> | Subject | Re: [RFC PATCH v1 1/1] docs: add the new commit-msg tags 'Reported:' and 'Reviewed:' |
| |
Thorsten Leemhuis <linux@leemhuis.info> wrote: > On 30.11.21 09:24, Geert Uytterhoeven wrote: > > On Mon, Nov 29, 2021 at 11:29 PM Eric Wong <e@80x24.org> wrote: > >> It's a bit much for common cases with git-send-email and > >> reasonable MUAs, I think. I don't know if formail is commonly > >> installed, nowadays... > > Well, after your earlier suggestion I considered to go with this: > > - perl -pi -e 's|^Message-Id:\s*<?([^>]+)>?$|Link: > https://lore.kernel.org/r/$1|g;' "$1" > + perl -pi -e 's|^Message-ID:\s*<?([^>]+)>?$|Link: > https://lore.kernel.org/r/$1|i;' "$1" > > But... > > > Of course ;-) You need it to run checkpatch on patch series obtained > > through "b4 am", before you apply them to your tree: > > > > $ cat *mbx | formail -s scripts/checkpatch.pl > > ...this made me wonder if formail would be the better solution. I came > up with this: > > formail -A "Link: https://lore.kernel.org/r/`formail -c -x Message-ID < > "${1}" | sed 's!.*<\(.*\)>!\1!'`" < "${1}" | sponge "${1}" > > Downsides: instead of perl it requires sed and sponge (part of > moreutils, which I guess not everyone has installed; but I tried to > avoid a big here document or moving files around).
As Geert noted, formail is probably reasonable, but I certainly don't have moreutils across all the systems I'm using right now.
> Is that worth it? Or is there a way to realize this in a more elegant > fashion with tools everyone has installed?
*shrug* Since newlines after ':' are a concern and it's (probably :P) safe to slurp entire contents of emails into memory nowadays; some minor tweaks to the original perl invocation should work:
* use `$/ = undef' to force Perl to operate on the entire input at once * use `m' RE modifier to ensure `^' and `$' still match SOL/EOL ($/ is only the input record separator, it doesn't change Perl's definition of "lines" for `^' and `$')
perl -i -p -e 'BEGIN{$/=undef};s|^Message-ID:\s*<?([^>]+)>?$|Link: https://lore.kernel.org/r/$1|im;'
| |