aboutsummaryrefslogtreecommitdiff
path: root/git-am.sh
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-05-27 11:25:19 +0200
committerJunio C Hamano <gitster@pobox.com>2009-06-13 17:30:38 -0700
commit0cd29a0371838228e2c942058e8829f5d0d4a077 (patch)
treea55be524d407e49df02305428ac83b6f815a8ed3 /git-am.sh
parentc574e683b587ee3c302317e4fa9c83cd4605cd82 (diff)
downloadgit-0cd29a0371838228e2c942058e8829f5d0d4a077.tar.gz
git-0cd29a0371838228e2c942058e8829f5d0d4a077.tar.xz
git-am: refactor 'cleaning up and aborting'
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. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-am.sh')
-rwxr-xr-xgit-am.sh27
1 files changed, 13 insertions, 14 deletions
diff --git a/git-am.sh b/git-am.sh
index 0ff1f577a..327807ddc 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -134,6 +134,12 @@ It does not apply to blobs recorded in its index."
unset GITHEAD_$his_tree
}
+clean_abort () {
+ test $# = 0 || echo >&2 "$@"
+ rm -fr "$dotest"
+ exit 1
+}
+
patch_format=
check_patch_format () {
@@ -180,22 +186,19 @@ check_patch_format () {
esac
;;
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"
@@ -210,7 +213,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
@@ -239,18 +242,14 @@ split_patches () {
print "Subject: ", $_ ;
$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
}