summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-03-30 19:51:32 +0000
committerZac Medico <zmedico@gentoo.org>2008-03-30 19:51:32 +0000
commit5b9c3611b8dd07c731abf4cb1665163bf627df03 (patch)
treee0b8c0223d355e32419a7755ceda134c261f4d97
parent6f0731d86c375d481c4214ff5ba7f00af29a8947 (diff)
downloadportage-5b9c3611b8dd07c731abf4cb1665163bf627df03.tar.gz
portage-5b9c3611b8dd07c731abf4cb1665163bf627df03.tar.bz2
portage-5b9c3611b8dd07c731abf4cb1665163bf627df03.zip
* Fix broken return value for doins.
* Make newins cleanup temp files after itself. svn path=/main/trunk/; revision=9634
-rwxr-xr-xbin/doins11
-rwxr-xr-xbin/newins9
2 files changed, 15 insertions, 5 deletions
diff --git a/bin/doins b/bin/doins
index 945938c8b..57a21c4bb 100755
--- a/bin/doins
+++ b/bin/doins
@@ -28,7 +28,7 @@ fi
[[ ! -d ${D}${INSDESTTREE} ]] && dodir "${INSDESTTREE}"
_doins() {
- local mysrc="$1" mydir="$2" cleanup=""
+ local mysrc="$1" mydir="$2" cleanup="" rval
if [ -L "$mysrc" ] ; then
cp "$mysrc" "${T}"
@@ -37,7 +37,9 @@ _doins() {
fi
install ${INSOPTIONS} "${mysrc}" "${D}${INSDESTTREE}/${mydir}"
+ rval=$?
[[ -n ${cleanup} ]] && rm -f "${cleanup}"
+ return $rval
}
_xdoins() {
@@ -46,6 +48,8 @@ _xdoins() {
done
}
+success=0
+
for x in "$@" ; do
if [ -d "$x" ] ; then
if [ "${DOINSRECUR}" == "n" ] ; then
@@ -63,7 +67,10 @@ for x in "$@" ; do
find "${x##*/}" -type d -exec dodir "${INSDESTTREE}/{}" \;
find "${x##*/}" \( -type f -or -type l \) -print0 | _xdoins
popd >/dev/null
+ ((++success))
else
- _doins "${x}"
+ _doins "${x}" && ((++success))
fi
done
+
+[ $success -gt 0 ] && exit 0 || exit 1
diff --git a/bin/newins b/bin/newins
index c64e06600..7735fc33c 100755
--- a/bin/newins
+++ b/bin/newins
@@ -8,6 +8,9 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then
exit 1
fi
-rm -rf "${T}/${2}" && \
-cp -f "${1}" "${T}/${2}" && \
-exec doins "${T}/${2}"
+rm -rf "${T}/${2}" || exit $?
+cp -f "${1}" "${T}/${2}" || exit $?
+doins "${T}/${2}"
+ret=$?
+rm -rf "${T}/${2}"
+exit $ret