Browse Source
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
3 changed files with 80 additions and 0 deletions
@ -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. |
@ -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…
Reference in new issue