sysdb revision 1.20
1b8e80941Smrg#!/bin/sh 2b8e80941Smrg# 3b8e80941Smrg# $NetBSD: sysdb,v 1.20 2007/08/26 23:55:50 dyoung Exp $ 4b8e80941Smrg# 5b8e80941Smrg 6b8e80941Smrg# PROVIDE: sysdb 7b8e80941Smrg# REQUIRE: mountcritremote 8b8e80941Smrg# BEFORE: DAEMON 9b8e80941Smrg 10b8e80941Smrg$_rc_subr_loaded . /etc/rc.subr 11b8e80941Smrg 12b8e80941Smrgname="sysdb" 13b8e80941Smrgrcvar=$name 14b8e80941Smrgstart_cmd="sysdb_start" 15b8e80941Smrgstop_cmd=":" 16b8e80941Smrgextra_commands="devdb utmp services netgroup password" 17b8e80941Smrgdevdb_cmd="build_devdb" 18b8e80941Smrgutmp_cmd="build_utmp" 19b8e80941Smrgservices_cmd="build_services" 20b8e80941Smrgnetgroup_cmd="build_netgroup" 21b8e80941Smrgpassword_cmd="build_password" 22b8e80941Smrgecho=: 23b8e80941Smrg 24b8e80941Smrgsysdb_start() 25b8e80941Smrg{ 26b8e80941Smrg echo -n "Building databases:" 27b8e80941Smrg echo=echo 28b8e80941Smrg comma=" " 29b8e80941Smrg $devdb_cmd 30b8e80941Smrg $utmp_cmd 31b8e80941Smrg $services_cmd 32b8e80941Smrg $netgroup_cmd 33b8e80941Smrg $password_cmd 34b8e80941Smrg echo " done" 35b8e80941Smrg} 36 37check_file() 38{ 39 local src="$1" 40 local db="$2" 41 42 shift 2 43 if [ ! -e "$src" ]; then 44 return 45 fi 46 if [ \( ! -f "$db" \) -o \( "$src" -nt "$db" \) ]; then 47 $echo -n "$comma$(basename "$src")" 48 comma=", " 49 "$@" 50 fi 51} 52 53build_services() 54{ 55 check_file /etc/services /var/db/services.db services_mkdb -q 56} 57 58build_netgroup() 59{ 60 check_file /etc/netgroup /var/db/netgroup.db netgroup_mkdb 61} 62 63build_devdb() 64{ 65 check_file /dev /var/run/dev.db dev_mkdb 66} 67 68build_password() 69{ 70 local p=/etc/master.passwd 71 check_file $p /etc/spwd.db pwd_mkdb $p 72} 73 74build_utmp() 75{ 76 # Re-create /var/run/utmp and /var/run/utmpx, which are 77 # deleted by mountcritlocal but can't be recreated by it 78 # because install and chown may not be available then 79 # (possibly no /usr). 80 # 81 local i 82 for i in "" x; do 83 if [ ! -f /var/run/utmp$i ]; then 84 $echo -n "${comma}utmp$i" 85 comma=", " 86 install -c -m 664 -g utmp /dev/null /var/run/utmp$i 87 fi 88 done 89} 90 91load_rc_config $name 92run_rc_command "$1" 93