threads / patch / 13875

patchAdd a helper script to send patches with Mozilla Thunderbird

Subject: [PATCH] Add a helper script to send patches with Mozilla Thunderbird

## tl;dr

7 messages between Jun 9, 2008 and Jun 20, 2008. Diffs are folded; open one to read it.

replies: 6people: 4as markdown or json

Lukas Sandström· Jun 9, 2008, 17:37 UTC · lore

The script appp.sh can be used with the External Editor extension for Mozilla Thunderbird in order to be able to send inline patches in an easy way.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
---

Hi, I sent this out a year ago or so. I figured I'd put the script in contrib/, in case someone finds it useful. (and yes, this patch is sent using appp.sh)

 Documentation/SubmittingPatches          |    5 +++
 contrib/thunderbird-patch-inline/README  |   20 +++++++++++
 contrib/thunderbird-patch-inline/appp.sh |   55 ++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 0 deletions(-)
 create mode 100644 contrib/thunderbird-patch-inline/README
 create mode 100755 contrib/thunderbird-patch-inline/appp.sh
Show changes to 3 files +80 −0

Documentation/SubmittingPatches, contrib/thunderbird-patch-inline/README, contrib/thunderbird-patch-inline/appp.sh

diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 0e155c9..7c16852 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -419,6 +419,11 @@ settings but I haven't tried, yet.
 	mail.identity.default.compose_html	=> false
 	mail.identity.id?.compose_html		=> false
 
+( Lukas Sandström )
+
+There is a script in contrib/thunderbird-patch-inline which can help
+you include patches with Thunderbird in an easy way. To use it, do the
+steps above and then use the script as the external editor.
 
 Gnus
 ----
diff --git a/contrib/thunderbird-patch-inline/README b/contrib/thunderbird-patch-inline/README
new file mode 100644
index 0000000..39f96aa
--- /dev/null
+++ b/contrib/thunderbird-patch-inline/README
@@ -0,0 +1,20 @@
+appp.sh is a script that is supposed to be used together with ExternalEditor
+for Mozilla Thundebird. It will let you include patches inline in e-mails
+in an easy way.
+
+Usage:
+- Generate the patch with git format-patch.
+- Start writing a new e-mail in Thunderbird.
+- Press the external editor button (or Ctrl-E) to run appp.sh
+- Select the previosly generated patch file.
+- Finish editing the e-mail.
+
+Any text that is entered into the message editor before appp.sh is called
+will be moved to the section between the --- and the diffstat.
+
+All S-O-B:s and Cc:s in the patch will be added to the CC list.
+
+To set it up, just install External Editor and tell it to use appp.sh as the
+editor.
+
+Zenity is a required dependency.
diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh
new file mode 100755
index 0000000..cc518f3
--- /dev/null
+++ b/contrib/thunderbird-patch-inline/appp.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+# Copyright 2008 Lukas Sandström <luksan@gmail.com>
+#
+# AppendPatch - A script to be used together with ExternalEditor
+# for Mozilla Thunderbird to properly include pathes inline i e-mails.
+
+# ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2
+
+CONFFILE=~/.appprc
+
+SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"
+if [ -e "$CONFFILE" ] ; then
+	LAST_DIR=`grep -m 1 "^LAST_DIR=" "${CONFFILE}"|sed -e 's/^LAST_DIR=//'`
+	cd "${LAST_DIR}"
+else
+	cd > /dev/null
+fi
+
+PATCH=$(zenity --file-selection)
+
+if [ "$?" != "0" ] ; then
+	#zenity --error --text "No patchfile given."
+	exit 1
+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}"`
+
+CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
+	-e 's/^Signed-off-by: \(.*\)/\1,/gp'`
+
+echo "$SUBJECT" > $1
+echo "Cc: $CCS" >> $1
+echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1
+echo "$SEP" >> $1
+
+echo "$CMT_MSG" >> $1
+echo "---" >> $1
+if [ "x${BODY}x" != "xx" ] ; then
+	echo >> $1
+	echo "$BODY" >> $1
+	echo >> $1
+fi
+echo "$DIFF" >> $1
+
+LAST_DIR=`dirname "${PATCH}"`
+
+grep -v "^LAST_DIR=" "${CONFFILE}" > "${CONFFILE}_"
+echo "LAST_DIR=${LAST_DIR}" >> "${CONFFILE}_"
+mv "${CONFFILE}_" "${CONFFILE}"
-- 
1.5.3.7
Johannes Sixt· Jun 10, 2008, 12:33 UTC · re: Lukas Sandström · lore

Re: [PATCH] Add a helper script to send patches with Mozilla Thunderbird

Lukas Sandström schrieb:
> The script appp.sh can be used with the External Editor extension for
> Mozilla Thunderbird in order to be able to send inline patches in an
> easy way.
Thanks a lot.

But sadly, it still wraps long lines. Is there a way to inhibit this short of modifying the settings?

-- Hannes
Lukas Sandström· Jun 10, 2008, 13:25 UTC · re: Johannes Sixt · lore

Re: [PATCH] Add a helper script to send patches with Mozilla Thunderbird

Johannes Sixt wrote:
Show 10 quoted lines
> Lukas Sandström schrieb:
>> The script appp.sh can be used with the External Editor extension for
>> Mozilla Thunderbird in order to be able to send inline patches in an
>> easy way.
> 
> Thanks a lot.
> 
> But sadly, it still wraps long lines. Is there a way to inhibit this short
> of modifying the settings?
> 

I don't know. I wouldn't expect so. It is a long time since I configured Thunderbird to send patches. I think I more or less followed the instructions in SubmittingPatches when I did.

/Lukas
Lukas Sandström· Jun 19, 2008, 23:21 UTC · re: Lukas Sandström · lore

[PATCH -resend] Add a helper script to send patches with Mozilla Thunderbird

The script appp.sh can be used with the External Editor extension for Mozilla Thunderbird in order to be able to send inline patches in an easy way.

Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
---
Resending. It would be nice if this ended up in contrib/
/Lukas
 Documentation/SubmittingPatches          |    5 +++
 contrib/thunderbird-patch-inline/README  |   20 +++++++++++
 contrib/thunderbird-patch-inline/appp.sh |   55 ++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 0 deletions(-)
 create mode 100644 contrib/thunderbird-patch-inline/README
 create mode 100755 contrib/thunderbird-patch-inline/appp.sh
Show changes to 3 files +80 −0

Documentation/SubmittingPatches, contrib/thunderbird-patch-inline/README, contrib/thunderbird-patch-inline/appp.sh

diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 0e155c9..7c16852 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -419,6 +419,11 @@ settings but I haven't tried, yet.
 	mail.identity.default.compose_html	=> false
 	mail.identity.id?.compose_html		=> false
 
+( Lukas Sandström )
+
+There is a script in contrib/thunderbird-patch-inline which can help
+you include patches with Thunderbird in an easy way. To use it, do the
+steps above and then use the script as the external editor.
 
 Gnus
 ----
diff --git a/contrib/thunderbird-patch-inline/README b/contrib/thunderbird-patch-inline/README
new file mode 100644
index 0000000..39f96aa
--- /dev/null
+++ b/contrib/thunderbird-patch-inline/README
@@ -0,0 +1,20 @@
+appp.sh is a script that is supposed to be used together with ExternalEditor
+for Mozilla Thundebird. It will let you include patches inline in e-mails
+in an easy way.
+
+Usage:
+- Generate the patch with git format-patch.
+- Start writing a new e-mail in Thunderbird.
+- Press the external editor button (or Ctrl-E) to run appp.sh
+- Select the previosly generated patch file.
+- Finish editing the e-mail.
+
+Any text that is entered into the message editor before appp.sh is called
+will be moved to the section between the --- and the diffstat.
+
+All S-O-B:s and Cc:s in the patch will be added to the CC list.
+
+To set it up, just install External Editor and tell it to use appp.sh as the
+editor.
+
+Zenity is a required dependency.
diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh
new file mode 100755
index 0000000..cc518f3
--- /dev/null
+++ b/contrib/thunderbird-patch-inline/appp.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+# Copyright 2008 Lukas Sandström <luksan@gmail.com>
+#
+# AppendPatch - A script to be used together with ExternalEditor
+# for Mozilla Thunderbird to properly include pathes inline i e-mails.
+
+# ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2
+
+CONFFILE=~/.appprc
+
+SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"
+if [ -e "$CONFFILE" ] ; then
+	LAST_DIR=`grep -m 1 "^LAST_DIR=" "${CONFFILE}"|sed -e 's/^LAST_DIR=//'`
+	cd "${LAST_DIR}"
+else
+	cd > /dev/null
+fi
+
+PATCH=$(zenity --file-selection)
+
+if [ "$?" != "0" ] ; then
+	#zenity --error --text "No patchfile given."
+	exit 1
+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}"`
+
+CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
+	-e 's/^Signed-off-by: \(.*\)/\1,/gp'`
+
+echo "$SUBJECT" > $1
+echo "Cc: $CCS" >> $1
+echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1
+echo "$SEP" >> $1
+
+echo "$CMT_MSG" >> $1
+echo "---" >> $1
+if [ "x${BODY}x" != "xx" ] ; then
+	echo >> $1
+	echo "$BODY" >> $1
+	echo >> $1
+fi
+echo "$DIFF" >> $1
+
+LAST_DIR=`dirname "${PATCH}"`
+
+grep -v "^LAST_DIR=" "${CONFFILE}" > "${CONFFILE}_"
+echo "LAST_DIR=${LAST_DIR}" >> "${CONFFILE}_"
+mv "${CONFFILE}_" "${CONFFILE}"
-- 
1.5.3.7
Junio C Hamano· Jun 20, 2008, 00:43 UTC · re: Lukas Sandström · lore

Re: [PATCH -resend] Add a helper script to send patches with Mozilla Thunderbird

Lukas Sandström <lukass@etek.chalmers.se> writes:
Show 14 quoted lines
> The script appp.sh can be used with the External Editor extension for
> Mozilla Thunderbird in order to be able to send inline patches in an
> easy way.
>
> Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
> ---
>
> Resending. It would be nice if this ended up in contrib/
>
> /Lukas
>
>  Documentation/SubmittingPatches          |    5 +++
>  contrib/thunderbird-patch-inline/README  |   20 +++++++++++
>  contrib/thunderbird-patch-inline/appp.sh |   55 +++++++++++++++++++++++++++

A silly question. What does "appp" stand for? AppendPatch does not have that many P's in it.

Show 12 quoted lines
> diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh
> new file mode 100755
> index 0000000..cc518f3
> --- /dev/null
> +++ b/contrib/thunderbird-patch-inline/appp.sh
> @@ -0,0 +1,55 @@
> +#!/bin/bash
> +# Copyright 2008 Lukas Sandström <luksan@gmail.com>
> +#
> +# AppendPatch - A script to be used together with ExternalEditor
> +# for Mozilla Thunderbird to properly include pathes inline i e-mails.
> ...
Eh, pathes?
しらいしななこ· Jun 20, 2008, 01:22 UTC · re: Junio C Hamano · lore

Re: [PATCH -resend] Add a helper script to send patches with Mozilla Thunderbird

Quoting Junio C Hamano <gitster@pobox.com>:
Show 19 quoted lines
> Lukas Sandström <lukass@etek.chalmers.se> writes:
>
>> The script appp.sh can be used with the External Editor extension for
>> Mozilla Thunderbird in order to be able to send inline patches in an
>> easy way.
>>
>> Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
>> ---
>>
>> Resending. It would be nice if this ended up in contrib/
>>
>> /Lukas
>>
>>  Documentation/SubmittingPatches          |    5 +++
>>  contrib/thunderbird-patch-inline/README  |   20 +++++++++++
>>  contrib/thunderbird-patch-inline/appp.sh |   55 +++++++++++++++++++++++++++
>
> A silly question.  What does "appp" stand for?  AppendPatch does not have
> that many P's in it.
Silly Junio (^_^).  Count them again.
-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/
Junio C Hamano· Jun 20, 2008, 02:58 UTC · re: しらいしななこ · lore

Re: [PATCH -resend] Add a helper script to send patches with Mozilla Thunderbird

しらいしななこ  <nanako3@lavabit.com> writes:
Show 23 quoted lines
> Quoting Junio C Hamano <gitster@pobox.com>:
>
>> Lukas Sandström <lukass@etek.chalmers.se> writes:
>>
>>> The script appp.sh can be used with the External Editor extension for
>>> Mozilla Thunderbird in order to be able to send inline patches in an
>>> easy way.
>>>
>>> Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
>>> ---
>>>
>>> Resending. It would be nice if this ended up in contrib/
>>>
>>> /Lukas
>>>
>>>  Documentation/SubmittingPatches          |    5 +++
>>>  contrib/thunderbird-patch-inline/README  |   20 +++++++++++
>>>  contrib/thunderbird-patch-inline/appp.sh |   55 +++++++++++++++++++++++++++
>>
>> A silly question.  What does "appp" stand for?  AppendPatch does not have
>> that many P's in it.
>
> Silly Junio (^_^).  Count them again.
*Blush*  Sorry for the noise.

← back to recent threads