@matheusbsbs / matheus-bagliano / commits / 0c3d26d24a
Fork 0

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> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Lukas Sandström committed Jun 20, 2008 at 01:21 UTC 0c3d26d24ab913a8cc6f478d176f5896af28c03c
3 files changed +80
Documentation/SubmittingPatches
+5
@@ -419,6 +419,11 @@ settings but I haven't tried, yet.
419 mail.identity.default.compose_html => false
420 mail.identity.id?.compose_html => false
421
422 +(Lukas Sandström)
423 +
424 +There is a script in contrib/thunderbird-patch-inline which can help
425 +you include patches with Thunderbird in an easy way. To use it, do the
426 +steps above and then use the script as the external editor.
427
428 Gnus
429 ----
contrib/thunderbird-patch-inline/README new
+20
@@ -0,0 +1,20 @@
1 +appp.sh is a script that is supposed to be used together with ExternalEditor
2 +for Mozilla Thundebird. It will let you include patches inline in e-mails
3 +in an easy way.
4 +
5 +Usage:
6 +- Generate the patch with git format-patch.
7 +- Start writing a new e-mail in Thunderbird.
8 +- Press the external editor button (or Ctrl-E) to run appp.sh
9 +- Select the previosly generated patch file.
10 +- Finish editing the e-mail.
11 +
12 +Any text that is entered into the message editor before appp.sh is called
13 +will be moved to the section between the --- and the diffstat.
14 +
15 +All S-O-B:s and Cc:s in the patch will be added to the CC list.
16 +
17 +To set it up, just install External Editor and tell it to use appp.sh as the
18 +editor.
19 +
20 +Zenity is a required dependency.
contrib/thunderbird-patch-inline/appp.sh new
+55
@@ -0,0 +1,55 @@
1 +#!/bin/bash
2 +# Copyright 2008 Lukas Sandström <luksan@gmail.com>
3 +#
4 +# AppendPatch - A script to be used together with ExternalEditor
5 +# for Mozilla Thunderbird to properly include pathes inline i e-mails.
6 +
7 +# ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2
8 +
9 +CONFFILE=~/.appprc
10 +
11 +SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"
12 +if [ -e "$CONFFILE" ] ; then
13 + LAST_DIR=`grep -m 1 "^LAST_DIR=" "${CONFFILE}"|sed -e 's/^LAST_DIR=//'`
14 + cd "${LAST_DIR}"
15 +else
16 + cd > /dev/null
17 +fi
18 +
19 +PATCH=$(zenity --file-selection)
20 +
21 +if [ "$?" != "0" ] ; then
22 + #zenity --error --text "No patchfile given."
23 + exit 1
24 +fi
25 +
26 +cd - > /dev/null
27 +
28 +SUBJECT=`sed -n -e '/^Subject: /p' "${PATCH}"`
29 +HEADERS=`sed -e '/^'"${SEP}"'$/,$d' $1`
30 +BODY=`sed -e "1,/${SEP}/d" $1`
31 +CMT_MSG=`sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}"`
32 +DIFF=`sed -e '1,/^---$/d' "${PATCH}"`
33 +
34 +CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \
35 + -e 's/^Signed-off-by: \(.*\)/\1,/gp'`
36 +
37 +echo "$SUBJECT" > $1
38 +echo "Cc: $CCS" >> $1
39 +echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1
40 +echo "$SEP" >> $1
41 +
42 +echo "$CMT_MSG" >> $1
43 +echo "---" >> $1
44 +if [ "x${BODY}x" != "xx" ] ; then
45 + echo >> $1
46 + echo "$BODY" >> $1
47 + echo >> $1
48 +fi
49 +echo "$DIFF" >> $1
50 +
51 +LAST_DIR=`dirname "${PATCH}"`
52 +
53 +grep -v "^LAST_DIR=" "${CONFFILE}" > "${CONFFILE}_"
54 +echo "LAST_DIR=${LAST_DIR}" >> "${CONFFILE}_"
55 +mv "${CONFFILE}_" "${CONFFILE}"