summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysmerge
diff options
context:
space:
mode:
authorajacoutot <ajacoutot@openbsd.org>2015-10-18 04:45:21 +0000
committerajacoutot <ajacoutot@openbsd.org>2015-10-18 04:45:21 +0000
commit3755094ab1737d45b5591368558d46f5555503e8 (patch)
tree2e197df9a3540f28acba48cd93e82645a934fff3 /usr.sbin/sysmerge
parentgetting sloppy, lost a } (diff)
downloadwireguard-openbsd-3755094ab1737d45b5591368558d46f5555503e8.tar.xz
wireguard-openbsd-3755094ab1737d45b5591368558d46f5555503e8.zip
Make sure sm_rotate_bak() is only run once.
Diffstat (limited to 'usr.sbin/sysmerge')
-rw-r--r--usr.sbin/sysmerge/sysmerge.sh9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.sbin/sysmerge/sysmerge.sh b/usr.sbin/sysmerge/sysmerge.sh
index 4498d746d16..f8b525069ab 100644
--- a/usr.sbin/sysmerge/sysmerge.sh
+++ b/usr.sbin/sysmerge/sysmerge.sh
@@ -1,6 +1,6 @@
#!/bin/ksh -
#
-# $OpenBSD: sysmerge.sh,v 1.215 2015/10/16 19:55:39 ajacoutot Exp $
+# $OpenBSD: sysmerge.sh,v 1.216 2015/10/18 04:45:21 ajacoutot Exp $
#
# Copyright (c) 2008-2014 Antoine Jacoutot <ajacoutot@openbsd.org>
# Copyright (c) 1998-2003 Douglas Barton <DougB@FreeBSD.org>
@@ -81,7 +81,8 @@ sm_rotate_bak() {
done
rm -rf ${_BKPDIR}.4
[[ -d ${_BKPDIR} ]] && mv ${_BKPDIR} ${_BKPDIR}.0
- install -d ${_BKPDIR} || return
+ # make sure this function is only run _once_ per sysmerge invocation
+ unset -f sm_rotate_bak
}
# get pkg @sample information
@@ -314,7 +315,9 @@ sm_install() {
fi
if [[ -f ${TARGET} ]]; then
- sm_rotate_bak || return
+ if typeset -f sm_rotate_bak >/dev/null; then
+ sm_rotate_bak || return
+ fi
mkdir -p ${_BKPDIR}/${_instdir} || return
cp -p ${TARGET} ${_BKPDIR}/${_instdir} || return
fi