Browse Source

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>
maint
Lukas Sandström 17 years ago committed by Junio C Hamano
parent
commit
0c3d26d24a
  1. 5
      Documentation/SubmittingPatches
  2. 20
      contrib/thunderbird-patch-inline/README
  3. 55
      contrib/thunderbird-patch-inline/appp.sh

5
Documentation/SubmittingPatches

@ -419,6 +419,11 @@ settings but I haven't tried, yet. @@ -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
----

20
contrib/thunderbird-patch-inline/README

@ -0,0 +1,20 @@ @@ -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.

55
contrib/thunderbird-patch-inline/appp.sh

@ -0,0 +1,55 @@ @@ -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}"
Loading…
Cancel
Save