Browse Source

Adda a stripcom function to strip comments (and leading whitespace,

depending on IFS).  This replaces the ed and sed code previously
used to do this.
OPENBSD_2_7
millert 24 years ago
parent
commit
11c5695fa6
1 changed files with 23 additions and 11 deletions
  1. +23
    -11
      src/etc/rc

+ 23
- 11
src/etc/rc View File

@ -1,10 +1,29 @@
# $OpenBSD: rc,v 1.130 2000/02/28 17:28:35 itojun Exp $
# $OpenBSD: rc,v 1.131 2000/03/05 16:55:22 millert Exp $
# System startup script run by init on autoboot
# or after single-user.
# Output and error are redirected to console by init,
# and the console is the controlling terminal.
# Subroutines (have to come first).
# Strip comments (and leading/trailing whitespace if IFS is set)
# from a file and spew to stdout
stripcom() {
local _file="$1"
local _line
{
while read _line ; do
_line=${_line%%#*} # strip comments
test -z "$_line" && continue
echo $_line
done
} < $_file
}
# End subroutines
stty status '^T'
# Set shell to ignore SIGINT (2), but not children;
@ -108,14 +127,7 @@ fi
if [ -f /etc/sysctl.conf ]; then
(
# delete comments and blank lines
# we use ed here because /usr may not be mounted yet.
set -- `
ed -s /etc/sysctl.conf <<EOF
1,\\\$s/#.*$//
g/^..*/p
Q
EOF
`
set -- `stripcom /etc/sysctl.conf`
while [ $# -ge 1 ] ; do
sysctl -w $1
shift
@ -154,7 +166,7 @@ syslogd ${syslogd_flags}
if [ -f /etc/ifaliases ]; then
(
# delete comments and blank lines
set -- `sed -e 's/#.*$//' -e '/^$/d' /etc/ifaliases`
set -- `stripcom /etc/ifaliases`
while [ $# -ge 3 ] ; do
ifconfig $1 inet alias $2 netmask $3
route -n add -host $2 localhost
@ -326,7 +338,7 @@ fi
if [ ! -f /etc/motd ]; then
install -c -o root -g wheel -m 664 /dev/null /etc/motd
fi
T=`mktemp /tmp/_motd.XXXXXXXXXX`
T=`mktemp /tmp/_motd.XXXXXXXXXX`
if [ $? -eq 0 ]; then
sysctl -n kern.version | sed 1q > $T
echo "" >> $T


Loading…
Cancel
Save