From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Subject: [PATCHv2 4/4] git-am: refactor 'cleaning up and aborting'
Date: Tue, 26 May 2009 02:38:10 +0200 [thread overview]
Message-ID: <1243298290-5909-5-git-send-email-giuseppe.bilotta@gmail.com> (raw)
In-Reply-To: <1243298290-5909-4-git-send-email-giuseppe.bilotta@gmail.com>
Introduce a clean_abort function that echoes an optional error message
to standard error, removes the dotest directory and exits with status 1.
Use it when patch format detection or patch splitting fails early.
---
git-am.sh | 29 +++++++++++++++--------------
1 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/git-am.sh b/git-am.sh
index 1a00830..057acfe 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -134,6 +134,15 @@ It does not apply to blobs recorded in its index."
unset GITHEAD_$his_tree
}
+clean_abort () {
+ if test $# -gt 0
+ then
+ echo "$@" > /dev/stderr
+ fi
+ rm -fr "$dotest"
+ exit 1
+}
+
patch_format=
check_patch_format () {
@@ -192,22 +201,18 @@ check_patch_format () {
fi
;;
esac
- } < "$1"
+ } < "$1" || clean_abort
}
split_patches () {
case "$patch_format" in
mbox)
- git mailsplit -d"$prec" -o"$dotest" -b -- "$@" > "$dotest/last" || {
- rm -fr "$dotest"
- exit 1
- }
+ git mailsplit -d"$prec" -o"$dotest" -b -- "$@" > "$dotest/last" || clean_abort
;;
stgit-series)
if test $# -ne 1
then
- echo "Only one StGIT patch series can be applied at once"
- exit 1
+ clean_abort "Only one StGIT patch series can be applied at once"
fi
series_dir=`dirname "$1"`
series_file="$1"
@@ -222,7 +227,7 @@ split_patches () {
shift
# remove the arg coming from the first-line comment
shift
- } < "$series_file"
+ } < "$series_file" || clean_abort
# set the patch format appropriately
patch_format=stgit
# now handle the actual StGIT patches
@@ -254,18 +259,14 @@ split_patches () {
print "Subject:", $0 ;
subject = 1;
}
- }' "$stgit" > "$dotest/$msgnum" || {
- echo "Failed to import $patch_format patch $stgit"
- exit 1
- }
+ }' "$stgit" > "$dotest/$msgnum" || clean_abort
done
echo "$this" > "$dotest/last"
this=
msgnum=
;;
*)
- echo "Patch format $patch_format is not supported."
- exit 1
+ clean_abort "Patch format $patch_format is not supported."
;;
esac
}
--
1.6.3.1.248.gb44be
next prev parent reply other threads:[~2009-05-26 0:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-26 0:38 [PATCHv2 0/4] git-am support for foreign patches Giuseppe Bilotta
2009-05-26 0:38 ` [PATCHv2 1/4] git-am foreign patch support: introduce patch_format Giuseppe Bilotta
2009-05-26 0:38 ` [PATCHv2 2/4] git-am foreign patch support: autodetect some patch formats Giuseppe Bilotta
2009-05-26 0:38 ` [PATCHv2 3/4] git-am foreign patch support: StGIT support Giuseppe Bilotta
2009-05-26 0:38 ` Giuseppe Bilotta [this message]
2009-05-27 7:19 ` [PATCHv2 4/4] git-am: refactor 'cleaning up and aborting' Junio C Hamano
2009-05-27 7:19 ` [PATCHv2 3/4] git-am foreign patch support: StGIT support Junio C Hamano
2009-05-27 8:29 ` Giuseppe Bilotta
2009-05-27 20:50 ` Junio C Hamano
2009-05-27 7:19 ` [PATCHv2 2/4] git-am foreign patch support: autodetect some patch formats Junio C Hamano
2009-05-27 8:19 ` Giuseppe Bilotta
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=1243298290-5909-5-git-send-email-giuseppe.bilotta@gmail.com \
--to=giuseppe.bilotta@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).