From: Paul Varner <fuzzyray@gentoo.org>
Date: Thu, 16 Feb 2012 17:34:37 +0000 (-0600)
Subject: Fix revdep-rebuild.sh to properly honor emerge return codes.
X-Git-Tag: gentoolkit-0.3.0.5~3
X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3e51df74595c535656ef9f38bf7a577a4f64d0f5;p=gentoolkit.git

Fix revdep-rebuild.sh to properly honor emerge return codes.

This should fix bugs 326923, 351054, and 404065
---

diff --git a/bin/revdep-rebuild.sh b/bin/revdep-rebuild.sh
index 50bc070..1d27d63 100755
--- a/bin/revdep-rebuild.sh
+++ b/bin/revdep-rebuild.sh
@@ -1152,42 +1152,44 @@ rebuild() {
 # Finish up
 cleanup() {
 	EMERGE_STATUS=$(<"$STATUS_FILE")
-	if [[ (( $EMERGE_STATUS != 0 )) && is_real_merge ]]; then
-		ewarn
-		ewarn "$APP_NAME failed to emerge all packages."
-		ewarn 'you have the following choices:'
-		einfo "- If emerge failed during the build, fix the problems and re-run $APP_NAME."
-		einfo '- Use /etc/portage/package.keywords to unmask a newer version of the package.'
-		einfo "  (and remove $ORDER_FILE to be evaluated again)"
-		einfo '- Modify the above emerge command and run it manually.'
-		einfo '- Compile or unmerge unsatisfied packages manually,'
-		einfo '  remove temporary files, and try again.'
-		einfo '  (you can edit package/ebuild list first)'
-		einfo
-		einfo 'To remove temporary files, please run:'
-		einfo "rm ${WORKING_DIR}/*.rr"
-		show_unowned_files
-		exit $EMERGE_STATUS
-	elif is_real_merge; then
-		trap_cmd() {
-			eerror "terminated. Please remove the temporary files manually:"
-			eerror "rm ${WORKING_DIR}/*.rr"
-			exit 1
-		}
-		[[ "${SKIP_LIST[@]}" != "" ]] && list_skipped_packages
-		trap trap_cmd SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
-		einfo 'Build finished correctly. Removing temporary files...'
-		einfo
-		einfo 'You can re-run revdep-rebuild to verify that all libraries and binaries'
-		einfo 'are fixed. Possible reasons for remaining inconsistencies include:'
-		einfo '  orphaned files'
-		einfo '  deep dependencies'
-		einfo "  packages installed outside of portage's control"
-		einfo '  specially-evaluated libraries'
-		if [[ -r "$OWNERS_FILE" && -s "$OWNERS_FILE" ]]; then
+	if is_real_merge; then
+		if [[ (( $EMERGE_STATUS != 0 )) ]]; then
+			ewarn
+			ewarn "$APP_NAME failed to emerge all packages."
+			ewarn 'you have the following choices:'
+			einfo "- If emerge failed during the build, fix the problems and re-run $APP_NAME."
+			einfo '- Use /etc/portage/package.keywords to unmask a newer version of the package.'
+			einfo "  (and remove $ORDER_FILE to be evaluated again)"
+			einfo '- Modify the above emerge command and run it manually.'
+			einfo '- Compile or unmerge unsatisfied packages manually,'
+			einfo '  remove temporary files, and try again.'
+			einfo '  (you can edit package/ebuild list first)'
+			einfo
+			einfo 'To remove temporary files, please run:'
+			einfo "rm ${WORKING_DIR}/*.rr"
 			show_unowned_files
+			exit $EMERGE_STATUS
+		else
+			trap_cmd() {
+				eerror "terminated. Please remove the temporary files manually:"
+				eerror "rm ${WORKING_DIR}/*.rr"
+				exit 1
+			}
+			[[ "${SKIP_LIST[@]}" != "" ]] && list_skipped_packages
+			trap trap_cmd SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM
+			einfo 'Build finished correctly. Removing temporary files...'
+			einfo
+			einfo 'You can re-run revdep-rebuild to verify that all libraries and binaries'
+			einfo 'are fixed. Possible reasons for remaining inconsistencies include:'
+			einfo '  orphaned files'
+			einfo '  deep dependencies'
+			einfo "  packages installed outside of portage's control"
+			einfo '  specially-evaluated libraries'
+			if [[ -r "$OWNERS_FILE" && -s "$OWNERS_FILE" ]]; then
+				show_unowned_files
+			fi
+			[[ $KEEP_TEMP ]] || rm -f "${FILES[@]}"
 		fi
-		[[ $KEEP_TEMP ]] || rm -f "${FILES[@]}"
 	else
 		einfo 'Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.'
 	fi