diff options
Diffstat (limited to 'usr.sbin/bsdinstall/scripts/services')
| -rwxr-xr-x | usr.sbin/bsdinstall/scripts/services | 112 | 
1 files changed, 112 insertions, 0 deletions
| diff --git a/usr.sbin/bsdinstall/scripts/services b/usr.sbin/bsdinstall/scripts/services new file mode 100755 index 000000000000..110b6f321ed1 --- /dev/null +++ b/usr.sbin/bsdinstall/scripts/services @@ -0,0 +1,112 @@ +#!/bin/sh +#- +# Copyright (c) 2011 Nathan Whitehorn +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +#    notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +#    notice, this list of conditions and the following disclaimer in the +#    documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +BSDCFG_SHARE="/usr/share/bsdconfig" +. $BSDCFG_SHARE/common.subr || exit 1 + +: ${BSDDIALOG_OK=0} + +if [ -f $BSDINSTALL_TMPETC/rc.conf.services ]; then +	eval "$( sed -E -e 's/\<(YES|AUTO)\>/on/i' -e 's/\<NO\>/off/i' \ +		$BSDINSTALL_TMPETC/rc.conf.services )" +else +	# Default service states. Everything is off if not enabled. +	sshd_enable="on" +fi + +echo -n > $BSDINSTALL_TMPETC/rc.conf.services + +DAEMON_OPTIONS="" + +if [ -x "${BSDINSTALL_CHROOT}/etc/rc.d/sshd" ]; then +	DAEMON_OPTIONS="$DAEMON_OPTIONS \ +	    sshd \"Secure shell daemon\" ${sshd_enable:-off}" +fi + +if [ -x "${BSDINSTALL_CHROOT}/etc/rc.d/ntpd" ]; then +	DAEMON_OPTIONS="$DAEMON_OPTIONS \ +	    ntpd \"Synchronize system and network time\" ${ntpd_enable:-off} \ +	    ntpd_sync_on_start \"Sync time on ntpd startup, even if offset is high\" \ +		${ntpd_sync_on_start:-off}" +fi + +if [ -x "${BSDINSTALL_CHROOT}/etc/rc.d/local_unbound" ]; then +	DAEMON_OPTIONS="$DAEMON_OPTIONS \ +	    local_unbound \"Local caching validating resolver\" \ +		${local_unbound_enable:-off}" +fi + +if [ -x "${BSDINSTALL_CHROOT}/etc/rc.d/powerd" ]; then +	DAEMON_OPTIONS="$DAEMON_OPTIONS \ +	    powerd \"Adjust CPU frequency dynamically if supported\" \ +		${powerd_enable:-off}" +fi + +if [ -x "${BSDINSTALL_CHROOT}/etc/rc.d/moused" ]; then +	DAEMON_OPTIONS="$DAEMON_OPTIONS \ +	    moused \"PS/2 mouse pointer on console\" ${moused_enable:-off}" +fi + +exec 5>&1 +DAEMONS=$(eval bsddialog --backtitle \"$OSNAME Installer\" \ +    --title \"System Configuration\" --no-cancel --separate-output \ +    --checklist \"Choose the services you would like to be started at boot:\" \ +    0 0 0 \ +	$DAEMON_OPTIONS \ +	dumpdev \"Enable kernel crash dumps to /var/crash\" ${dumpdev:-on} \ +2>&1 1>&5 ) +retval=$? +exec 5>&- + +if [ $retval -ne $BSDDIALOG_OK ]; then +	exit 1 +fi + +havedump= +havemouse= +for daemon in $DAEMONS; do +	[ "$daemon" = "dumpdev" ] && havedump=1 continue +	[ "$daemon" = "moused" ] && havemouse=1 +	if [ "$daemon" = "ntpd_sync_on_start" ]; then +		rcvar=${daemon} +	else +		rcvar=${daemon}_enable +	fi +	echo ${rcvar}=\"YES\" >> $BSDINSTALL_TMPETC/rc.conf.services +done + +if [ ! "$havemouse" ]; then +	echo moused_nondefault_enable=\"NO\" >> $BSDINSTALL_TMPETC/rc.conf.services +fi + +echo '# Set dumpdev to "AUTO" to enable crash dumps, "NO"' \ +     'to disable' >> $BSDINSTALL_TMPETC/rc.conf.services +if [ "$havedump" ]; then +	echo dumpdev=\"AUTO\" >> $BSDINSTALL_TMPETC/rc.conf.services +else +	echo dumpdev=\"NO\" >> $BSDINSTALL_TMPETC/rc.conf.services +fi | 
