sysdb revision 1.17
11.1Slukem#!/bin/sh
21.1Slukem#
31.17Schristos# $NetBSD: sysdb,v 1.17 2007/05/10 17:45:50 christos Exp $
41.1Slukem#
51.1Slukem
61.5Slukem# PROVIDE: sysdb
71.3Slukem# REQUIRE: mountcritremote
81.9Sthorpej# BEFORE:  DAEMON
91.1Slukem
101.14Smycroft$_rc_subr_loaded . /etc/rc.subr
111.1Slukem
121.1Slukemname="sysdb"
131.1Slukemstart_cmd="sysdb_start"
141.1Slukemstop_cmd=":"
151.16Schristosextra_commands="devdb utmp services netgroup password"
161.11Satatatdevdb_cmd="build_devdb"
171.11Satatatutmp_cmd="build_utmp"
181.16Schristosservices_cmd="build_services"
191.16Schristosnetgroup_cmd="build_netgroup"
201.16Schristospassword_cmd="build_password"
211.16Schristosecho=:
221.1Slukem
231.1Slukemsysdb_start()
241.1Slukem{
251.16Schristos	echo -n "Building databases:"
261.16Schristos	echo=echo
271.16Schristos	comma=" "
281.12Satatat	$devdb_cmd
291.12Satatat	$utmp_cmd
301.16Schristos	$services_cmd
311.16Schristos	$netgroup_cmd
321.16Schristos	$password_cmd
331.16Schristos	echo " done"
341.16Schristos}
351.16Schristos
361.16Schristoscheck_file()
371.16Schristos{
381.16Schristos	local src="$1"
391.16Schristos	local db="$2"
401.16Schristos	shift 2
411.16Schristos	if [ \( ! -f "$db" \) -o \( "$src" -nt "$db" \) ]; then
421.16Schristos		$echo -n "$comma$(basename "$src")"
431.16Schristos		comma=", "
441.16Schristos		"$@"
451.16Schristos	fi
461.16Schristos}
471.16Schristos
481.16Schristosbuild_services()
491.16Schristos{
501.17Schristos	check_file /etc/services /var/db/services.db services_mkdb -q
511.16Schristos}
521.16Schristos
531.16Schristosbuild_netgroup()
541.16Schristos{
551.17Schristos	check_file /etc/netgroup /var/db/netgroup.db netgroup_mkdb
561.11Satatat}
571.4Slukem
581.11Satatatbuild_devdb()
591.11Satatat{
601.16Schristos	check_file /dev /var/run/dev.db dev_mkdb
611.16Schristos}
621.16Schristos
631.16Schristosbuild_password()
641.16Schristos{
651.16Schristos	local p=/etc/master.passwd
661.16Schristos	check_file $p /etc/spwd.db pwd_mkdb $p
671.11Satatat}
681.11Satatat
691.11Satatatbuild_utmp()
701.11Satatat{
711.10Sperry	#	Re-create /var/run/utmp and /var/run/utmpx, which are
721.10Sperry	#	deleted by mountcritlocal but can't be recreated by it
731.10Sperry	#	because install and chown may not be available then
741.10Sperry	#	(possibly no /usr).
751.4Slukem	#
761.16Schristos	local i
771.16Schristos	for i in "" x; do
781.16Schristos		if [ ! -f /var/run/utmp$i ]; then
791.16Schristos			$echo -n "${comma}utmp$i"
801.16Schristos			comma=", "
811.16Schristos			install -c -m 664 -g utmp /dev/null /var/run/utmp$i
821.16Schristos		fi
831.16Schristos	done
841.1Slukem}
851.1Slukem
861.2Slukemload_rc_config $name
871.1Slukemrun_rc_command "$1"
88