From: Marco Stornelli <marco.stornelli@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, "Lukas Sandström" <luksan@gmail.com>
Subject: Re: [PATCH v4] Thunderbird: fix appp.sh format problems
Date: Sat, 01 Sep 2012 09:52:55 +0200 [thread overview]
Message-ID: <5041BED7.201@gmail.com> (raw)
In-Reply-To: <7v3933oupe.fsf@alter.siamese.dyndns.org>
Il 31/08/2012 19:08, Junio C Hamano ha scritto:
> Marco Stornelli <marco.stornelli@gmail.com> writes:
>
>> The current script has got the following problems:
>>
>> 1) It doesn't work if the language used by Thunderbird is not english;
>> 2) The field To: filled by format-patch is not evaluated;
>> 3) The field Cc: is loaded from Cc used in the commit message
>> instead of using the Cc field filled by format-patch in the email
>> header.
>>
>> Added comments for point 1), added parsing of To: for point 2) and
>> added parsing of Cc: in the email header for point 3), removing the
>> Cc: parsing from commit message.
>>
>> Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
>> ---
>
> Thanks. [+cc Lukas].
>
> A few new issues your patch introduced:
>
> - MAILHEADER is only set once to read from sed, and then used once
> to be echoed to another file. Just send sed output to the file.
>
> - The "s/Subject/Oggetto/g" bit in my previous review.
>
> (find the fix-up at the end).
>
>>
>> v4: create a tmp file to allow correct perl parsing
>> v3: parse only To: and Cc: in the email header, fix some comments
>> v2: changed the commit message to reflect better the script implementation
>> v1: first draft
>>
>> contrib/thunderbird-patch-inline/appp.sh | 26 ++++++++++++++++++++++----
>> 1 files changed, 22 insertions(+), 4 deletions(-)
>>
>> diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh
>> index 5eb4a51..0daeb29 100755
>> --- a/contrib/thunderbird-patch-inline/appp.sh
>> +++ b/contrib/thunderbird-patch-inline/appp.sh
>> @@ -6,6 +6,9 @@
>>
>> # ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2
>>
>> +# NOTE: You must change some words in this script according to the language
>> +# used by Mozilla Thunderbird, as <Subject>, <To>, <Don't remove this line>.
>> +
>> CONFFILE=~/.appprc
>>
>> SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"
>> @@ -26,17 +29,32 @@ fi
>> cd - > /dev/null
>>
>> SUBJECT=`sed -n -e '/^Subject: /p' "${PATCH}"`
>> -HEADERS=`sed -e '/^'"${SEP}"'$/,$d' $1`
>> BODY=`sed -e "1,/${SEP}/d" $1`
>> CMT_MSG=`sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}"`
>> DIFF=`sed -e '1,/^---$/d' "${PATCH}"`
>> +MAILHEADER=`sed '/^$/q' "${PATCH}"`
>> +PATCHTMP="${PATCH}.tmp"
>> +
>> +echo $MAILHEADER > $PATCHTMP
>> +
>> +export PATCHTMP
>> +CCS=`perl -e 'local $/=undef; open FILE, $ENV{'PATCHTMP'}; $text=<FILE>;
>> +close FILE; $addr = $1 if $text =~ /Cc: (.*?(,\n .*?)*)\n/s; $addr =~ s/\n//g;
>> +print $addr;'`
>> +
>> +TO=`perl -e 'local $/=undef; open FILE, $ENV{'PATCHTMP'}; $text=<FILE>;
>> +close FILE; $addr = $1 if $text =~ /To: (.*?(,\n .*?)*)\n/s; $addr =~ s/\n//g;
>> +print $addr;'`
>>
>> -CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
>> - -e 's/^Signed-off-by: \(.*\)/\1,/gp'`
>> +rm -rf $PATCHTMP
>>
>> +# Change Subject: before next line according to Thunderbird language
>> +# for example:
>> +# SUBJECT=`echo $SUBJECT | sed -e 's/Subject/Oggetto/g'`
>> echo "$SUBJECT" > $1
>> +# Change To: according to Thunderbird language
>> +echo "To: $TO" >> $1
>> echo "Cc: $CCS" >> $1
>> -echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1
>> echo "$SEP" >> $1
>>
>> echo "$CMT_MSG" >> $1
>
>
> I also wonder what would happen if To: and Cc: in the input were
> split into continuation lines, but that was already present in the
Do you mean To: <mail1>,.....<mailN>\nCc: <mail1>,.....<mailN>?
> version before your patch, so the attached fix-up won't touch that
> part, but you may want to think about it.
Actually I'm trying the script in two ways: with --to and --cc of git
format patch => multilines, and with a little script (see below) to have
automatically Cc: from other script, in this case get_maintainer.pl from
Linux kernel source tree, and it works perfectly. In the last case Cc:
mail addresses are on the same line.
Maybe we can add even this script, but maybe it's too kernel-specific.
#!/bin/bash
if [[ ! $# -eq 1 ]]
then
echo "Usage: command <PATH>, where PATH contains kernel and
patches"
exit
fi
PATCHPATH=${1%/}
for i in `ls $PATCHPATH/*.patch`
do
CCN=`grep "Cc:" $i | wc -l`
if [ $CCN -ge 1 ]
then
echo "Cc: list already present, skip..."
else
CCLIST=`$PATCHPATH/scripts/get_maintainer.pl
--norolestats --no-git --separator , $i`
sed -n -e "/^$/,9999999 ! p" $i > $i.new
echo "Cc: $CCLIST" >> $i.new
sed -n -e "/^$/,9999999 p" $i >> $i.new
mv $i.new $i
fi
done
next prev parent reply other threads:[~2012-09-01 8:00 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-31 14:09 [PATCH v4] Thunderbird: fix appp.sh format problems Marco Stornelli
2012-08-31 17:08 ` Junio C Hamano
2012-09-01 7:52 ` Marco Stornelli [this message]
2012-09-02 18:44 ` Junio C Hamano
2012-08-31 20:01 ` Junio C Hamano
2012-08-31 21:35 ` Johannes Sixt
2012-09-01 7:43 ` Marco Stornelli
2012-09-01 13:59 ` Johannes Sixt
2012-09-01 19:18 ` Marco Stornelli
2012-09-02 20:42 ` Junio C Hamano
2012-09-03 10:51 ` Marco Stornelli
2012-09-03 15:48 ` Marco Stornelli
2012-09-03 20:16 ` Junio C Hamano
2012-09-04 6:37 ` Marco Stornelli
2012-09-04 9:01 ` Junio C Hamano
2012-09-04 11:22 ` Marco Stornelli
2012-09-04 15:49 ` Junio C Hamano
2012-09-04 18:59 ` Marco Stornelli
2012-09-04 19:22 ` Junio C Hamano
2012-09-05 6:30 ` Marco Stornelli
2012-09-02 18:42 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5041BED7.201@gmail.com \
--to=marco.stornelli@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=luksan@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.