NetBSD/etc/rc.subr
nathanw 5e40cf296d Move the knowledge that /usr and /var should be mounted early from
rc.subr to the default rc.conf.
While this is no longer necessary to supress noise,
it increases the clarity of the situation and removes
one more bit of what should be adjustable configuration
from scripts that site admins shouldn't have to edit.

Addresses PRs misc/7406 and (partially) bin/7491.
1999-04-28 23:32:29 +00:00

78 lines
1.6 KiB
Plaintext

# $NetBSD: rc.subr,v 1.9 1999/04/28 23:32:29 nathanw Exp $
# functions used by various rc scripts
#
# checkyesno
# Test $1 variable, and warn if not set to YES or NO.
# return 0 if it's "yes" (et al), nonzero otherwise
#
checkyesno() {
eval value=\$${1}
case $value in
# "yes", "true", "on", or "1"
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
return 0
;;
# "no", "false", "off", or "0"
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
return 1
;;
*)
logger -s "WARNING: \$${1} is not set properly."
return 1
;;
esac
}
#
# mount_critical_filesystems
# Go through the list of critical filesystems, checking each one
# to see if it is mounted, and if it is not, mounting it.
#
fstab=/etc/fstab
mount_critical_filesystems() {
for fs in $critical_filesystems; do
if [ $1 = local ] && ! islocalfs $fs; then
continue
fi
mount | (
ismounted=no
while read what _on on _type type; do
if [ $on = $fs ]; then
ismounted=yes
fi
done
if [ $ismounted = no ]; then
mount $fs >/dev/null 2>&1
fi
)
done
}
islocalfs() {
if [ -z "$1" ]; then
echo 'islocalfs() called with no fs argument: aborting.'
exit 3
fi
while read dev dir type opts; do
if [ "$1" = "$dir" ]; then
case $type in
# Local filesystems.
ados|cd9660|ext2fs|fdesc|ffs) return 0;;
filecore|kernfs|lfs|mfs|msdos|null) return 0;;
portal|procfs|ufs|umap|union) return 0;;
# Network filesystems
nfs) return 1;;
# If we don't know, err on the safe side
# and assume it's a network FS.
*) return 1;;
esac
fi
done < $fstab
# Quietly ignore not-found filesystems.
return 1;
}