aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2001-06-20 07:15:38 +0000
committerDoug Barton <dougb@FreeBSD.org>2001-06-20 07:15:38 +0000
commit31e58c171389de98216762267cc84f7062af94f2 (patch)
tree4a8d3e565c3ae5267d02c02d548087bedb581fa8
parentbd947818c17204664b0beb6cec09d9c5f0a42339 (diff)
Notes
-rwxr-xr-xusr.sbin/mergemaster/mergemaster.sh20
1 files changed, 13 insertions, 7 deletions
diff --git a/usr.sbin/mergemaster/mergemaster.sh b/usr.sbin/mergemaster/mergemaster.sh
index 8dde227ec01a..8efbae76d933 100755
--- a/usr.sbin/mergemaster/mergemaster.sh
+++ b/usr.sbin/mergemaster/mergemaster.sh
@@ -569,6 +569,15 @@ fi
# Use the umask/mode information to install the files
# Create directories as needed
#
+do_install_and_rm () {
+ install -m "${1}" "${2}" "${3}" &&
+ if [ -f "${2}" ]; then
+ rm "${2}"
+ else
+ return 0
+ fi
+}
+
mm_install () {
local INSTALL_DIR
INSTALL_DIR=${1#.}
@@ -598,8 +607,7 @@ mm_install () {
NEED_CAP_MKDB=yes
;;
/etc/master.passwd)
- install -m 600 "${1}" "${DESTDIR}${INSTALL_DIR}" &&
- [ -f "${1}" ] && rm "${1}"
+ do_install_and_rm 600 "${1}" "${DESTDIR}${INSTALL_DIR}"
NEED_PWD_MKDB=yes
DONT_INSTALL=yes
;;
@@ -657,21 +665,19 @@ mm_install () {
case "${DONT_INSTALL}" in
'')
- install -m "${FILE_MODE}" "${1}" "${DESTDIR}${INSTALL_DIR}" &&
- [ -f "${1}" ] && rm "${1}"
+ do_install_and_rm "${FILE_MODE}" "${1}" "${DESTDIR}${INSTALL_DIR}"
;;
*)
unset DONT_INSTALL
;;
esac
- else
+ else # File matched -x
case "${1#.}" in
/dev/MAKEDEV)
NEED_MAKEDEV=yes
;;
esac
- install -m "${FILE_MODE}" "${1}" "${DESTDIR}${INSTALL_DIR}" &&
- [ -f "${1}" ] && rm "${1}"
+ do_install_and_rm "${FILE_MODE}" "${1}" "${DESTDIR}${INSTALL_DIR}"
fi
return $?
}