Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/postinstall Fix do_blocklist:



details:   https://anonhg.NetBSD.org/src/rev/a69351e8b238
branches:  trunk
changeset: 935004:a69351e8b238
user:      rin <rin%NetBSD.org@localhost>
date:      Mon Jun 22 06:55:41 2020 +0000

description:
Fix do_blocklist:
- Respect destination directory specified by -d option.
- Accept check and fix options. For the former, do not modify anything as
  users normally expect.

diffstat:

 usr.sbin/postinstall/postinstall.in |  60 ++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 24 deletions(-)

diffs (86 lines):

diff -r be10e80201ef -r a69351e8b238 usr.sbin/postinstall/postinstall.in
--- a/usr.sbin/postinstall/postinstall.in       Mon Jun 22 06:49:04 2020 +0000
+++ b/usr.sbin/postinstall/postinstall.in       Mon Jun 22 06:55:41 2020 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: postinstall.in,v 1.28 2020/06/20 18:30:53 riastradh Exp $
+# $NetBSD: postinstall.in,v 1.29 2020/06/22 06:55:41 rin Exp $
 #
 # Copyright (c) 2002-2015 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -845,15 +845,24 @@
 }
 
 fixblock() {
-       for i; do
-               if [ ! -f "$i" ]; then
-                       continue
+       local op="$1"
+       local target="${DEST_DIR}$2"
+
+       if [ ! -f "${target}" ]; then
+               continue
+       fi
+
+       if ${GREP} '[bB]lack' "${target}" > /dev/null; then
+               if [ "$1" = "check" ]; then
+                       msg "Fix old configuration file(s)."
+                       return 1
+               else
+                       local p=$(${STAT} -f %Lp "${target}")
+                       chmod u+w "${target}" || return 1
+                       ${SED} -i -e 's/\([bB]\)lack/\1lock/g' "${target}"
+                       chmod "${p}" "${target}"
                fi
-               local p=$(stat -f %Lp "$i")
-               chmod u+w "$i"
-               sed -i -e 's/\([bB]\)lack/\1lock/g' "$i"
-               chmod "$p" "$i"
-       done
+       fi
 }
 
 #
@@ -862,23 +871,26 @@
 additem blocklist "rename old files to blocklist"
 do_blocklist()
 {
-       local rcfiles="/etc/rc.conf /etc/npf.conf /etc/defaults/rc.conf"
-
+       [ -n "$1" ] || err 3 "USAGE: do_blocklist  fix|check"
+       local op="$1"
+       
        # if we are actually using blocklistd
-       if [ -f /var/db/blacklist.db ]; then
-               mv /var/db/blacklist.db /var/db/blocklist.db
-       fi
-       if [ -f /etc/blacklistd.conf ]; then
-               mv /etc/blacklistd.conf /etc/blocklistd.conf
-               fixblock /etc/blocklistd.conf
-       fi
+       for i in /var/db/blacklist.db /etc/blacklistd.conf; do
+               local old="${DEST_DIR}${i}"
+               if [ ! -f "${old}" ]; then
+                       continue
+               elif [ "$1" = "check" ]; then
+                       msg "Rename old file(s)."
+                       return 1
+               fi
+               local new=$(echo "${old}" | ${SED} s/black/block/)
+               mv "${old}" "${new}" || return 1
+       done
 
-       # if we have fixed the rc files we are done
-       if ! grep -qs $rcfiles; then
-               return
-       fi
-
-       fixblock $rcfiles
+       for i in /etc/rc.conf /etc/npf.conf /etc/blocklistd.conf \
+           /etc/defaults/rc.conf; do
+               fixblock "${op}" "${i}" || return 1
+       done
 }
 
 #



Home | Main Index | Thread Index | Old Index