Skip to content

Commit

Permalink
git-am: refactor 'cleaning up and aborting'
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Giuseppe Bilotta authored and Junio C Hamano committed Jun 14, 2009
1 parent c574e68 commit 0cd29a0
Showing 1 changed file with 13 additions and 14 deletions.
27 changes: 13 additions & 14 deletions git-am.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 () {
Expand Down Expand Up @@ -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"
Expand All @@ -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
Expand Down Expand Up @@ -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
}
Expand Down

0 comments on commit 0cd29a0

Please sign in to comment.