xref: /freebsd/usr.sbin/bsdconfig/startup/misc (revision f4844f65a9213b76ff8cf3cc0c9d881631c34c3a)
1641a6cfbSDevin Teske#!/bin/sh
2641a6cfbSDevin Teske#-
3e14ddd1fSDevin Teske# Copyright (c) 2012-2013 Devin Teske
4641a6cfbSDevin Teske# All Rights Reserved.
5641a6cfbSDevin Teske#
6641a6cfbSDevin Teske# Redistribution and use in source and binary forms, with or without
7641a6cfbSDevin Teske# modification, are permitted provided that the following conditions
8641a6cfbSDevin Teske# are met:
9641a6cfbSDevin Teske# 1. Redistributions of source code must retain the above copyright
10641a6cfbSDevin Teske#    notice, this list of conditions and the following disclaimer.
11641a6cfbSDevin Teske# 2. Redistributions in binary form must reproduce the above copyright
12641a6cfbSDevin Teske#    notice, this list of conditions and the following disclaimer in the
13641a6cfbSDevin Teske#    documentation and/or other materials provided with the distribution.
14641a6cfbSDevin Teske#
15641a6cfbSDevin Teske# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16641a6cfbSDevin Teske# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE
17641a6cfbSDevin Teske# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18641a6cfbSDevin Teske# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19641a6cfbSDevin Teske# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20641a6cfbSDevin Teske# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21641a6cfbSDevin Teske# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22641a6cfbSDevin Teske# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23641a6cfbSDevin Teske# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24641a6cfbSDevin Teske# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25641a6cfbSDevin Teske# SUCH DAMAGE.
26641a6cfbSDevin Teske#
27641a6cfbSDevin Teske# $FreeBSD$
28641a6cfbSDevin Teske#
29641a6cfbSDevin Teske############################################################ INCLUDES
30641a6cfbSDevin Teske
31ab2043b8SDevin TeskeBSDCFG_SHARE="/usr/share/bsdconfig"
32ab2043b8SDevin Teske. $BSDCFG_SHARE/common.subr || exit 1
3356961fd7SDevin Teskef_dprintf "%s: loading includes..." "$0"
34ab2043b8SDevin Teskef_include $BSDCFG_SHARE/dialog.subr
35ab2043b8SDevin Teskef_include $BSDCFG_SHARE/mustberoot.subr
36ab2043b8SDevin Teskef_include $BSDCFG_SHARE/sysrc.subr
37641a6cfbSDevin Teske
38ab2043b8SDevin TeskeBSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="140.startup"
39641a6cfbSDevin Teskef_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
40641a6cfbSDevin Teske
4148c5129fSDevin Teskeipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
42641a6cfbSDevin Teske[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
43641a6cfbSDevin Teske
44641a6cfbSDevin Teske############################################################ GLOBALS
45641a6cfbSDevin Teske
46641a6cfbSDevin Teske#
47641a6cfbSDevin Teske# Operating environment
48641a6cfbSDevin Teske#
49641a6cfbSDevin TeskeUNAME_P=$( uname -p ) # Processor Architecture (i.e. i386)
50641a6cfbSDevin Teske
51641a6cfbSDevin Teske############################################################ FUNCTIONS
52641a6cfbSDevin Teske
53641a6cfbSDevin Teske# dialog_menu_main
54641a6cfbSDevin Teske#
55641a6cfbSDevin Teske# Display the dialog(1)-based application main menu.
56641a6cfbSDevin Teske#
57641a6cfbSDevin Teskedialog_menu_main()
58641a6cfbSDevin Teske{
59641a6cfbSDevin Teske	local prompt="$msg_miscellaneous_menu_text"
60052f8969SDevin Teske	local menu_list="
61641a6cfbSDevin Teske		'X <<< $msg_exit' '$msg_exit_this_menu'
62641a6cfbSDevin Teske	" # END-QUOTE
63052f8969SDevin Teske	local defaultitem= # Calculated below
64052f8969SDevin Teske	local hline="$hline_arrows_tab_enter"
65641a6cfbSDevin Teske
66*f4844f65SDevin Teske	# List of variables we'll need from rc.conf(5)
67052f8969SDevin Teske	local var_list="
68641a6cfbSDevin Teske		accounting_enable
69641a6cfbSDevin Teske		local_startup
70641a6cfbSDevin Teske		lpd_enable
71641a6cfbSDevin Teske		named_enable
72641a6cfbSDevin Teske		named_flags
73641a6cfbSDevin Teske		nis_client_enable
74641a6cfbSDevin Teske		nis_server_enable
75641a6cfbSDevin Teske		nisdomainname
76641a6cfbSDevin Teske		startup_dirs
77641a6cfbSDevin Teske	" # END-QUOTE
78641a6cfbSDevin Teske
79*f4844f65SDevin Teske	# Add i386-specific variables if appropriate
80641a6cfbSDevin Teske	if [ "$UNAME_P" = "i386" ]; then
81641a6cfbSDevin Teske		var_list="$var_list
82641a6cfbSDevin Teske			apm_enable
83641a6cfbSDevin Teske			ibcs2_enable
84641a6cfbSDevin Teske			svr4_enable
85641a6cfbSDevin Teske		" # END-QUOTE
86641a6cfbSDevin Teske	fi
87641a6cfbSDevin Teske
88052f8969SDevin Teske	# Obtain default-item (adjusted below for dynamic tags)
89052f8969SDevin Teske	f_dialog_default_fetch defaultitem
90052f8969SDevin Teske	local ditem="${defaultitem%%[$IFS]*}"
91052f8969SDevin Teske
92d3a0f918SDevin Teske	eval "$(
93641a6cfbSDevin Teske		. "$RC_DEFAULTS"
94641a6cfbSDevin Teske		source_rc_confs
95641a6cfbSDevin Teske		export $var_list
96641a6cfbSDevin Teske		export msg_apm            msg_apm_desc
97641a6cfbSDevin Teske		export msg_startup_dirs   msg_startup_dirs_desc
98641a6cfbSDevin Teske		export msg_named          msg_named_desc
99641a6cfbSDevin Teske		export msg_named_flags    msg_named_flags_desc
100641a6cfbSDevin Teske		export msg_nis_client     msg_nis_client_desc
101641a6cfbSDevin Teske		export msg_nis_domainname msg_nis_domainname_desc
102641a6cfbSDevin Teske		export msg_nis_server     msg_nis_server_desc
103641a6cfbSDevin Teske		export msg_accounting     msg_accounting_desc
104641a6cfbSDevin Teske		export msg_lpd            msg_lpd_desc
105641a6cfbSDevin Teske		export msg_sco            msg_sco_desc
106641a6cfbSDevin Teske		export msg_svr4           msg_svr4_desc
107641a6cfbSDevin Teske		:| awk \
108641a6cfbSDevin Teske			-v uname_p="$UNAME_P"            \
109641a6cfbSDevin Teske			-v menu_tags="$DIALOG_MENU_TAGS" \
110d3a0f918SDevin Teske			-v menu_fmt="'%s' '%s'\n"        \
111d3a0f918SDevin Teske			-v mtag_fmt="%c [%c] %s"         \
112d3a0f918SDevin Teske			-v separator="' ' ' -- '\n"      \
113d3a0f918SDevin Teske			-v ditem="$ditem"                \
114d3a0f918SDevin Teske		'
115d3a0f918SDevin Teske		function mprint(tag,item)
116d3a0f918SDevin Teske		{
117d3a0f918SDevin Teske			printf menu_fmt, tag, item
118d3a0f918SDevin Teske		}
119d3a0f918SDevin Teske		END {
120641a6cfbSDevin Teske			i = 1
121d3a0f918SDevin Teske			defaultitem = ""
122d3a0f918SDevin Teske
123d3a0f918SDevin Teske			printf "menu_list=\"$menu_list\n"
124d3a0f918SDevin Teske
125641a6cfbSDevin Teske			if ( uname_p == "i386" )
126641a6cfbSDevin Teske			{
127641a6cfbSDevin Teske				#
128641a6cfbSDevin Teske				# APM: Auto-power management services
129641a6cfbSDevin Teske				#      (typically laptops)
130641a6cfbSDevin Teske				#
131d3a0f918SDevin Teske				char = substr(menu_tags, i++, 1)
132d3a0f918SDevin Teske				mark = ( ENVIRON["apm_enable"] ~ \
133d3a0f918SDevin Teske						/^[Yy][Ee][Ss]$/ ? "X" : " " )
134d3a0f918SDevin Teske				subtag = ENVIRON["msg_apm"]
135d3a0f918SDevin Teske				tag = sprintf(mtag_fmt, char, mark, subtag)
136d3a0f918SDevin Teske				mprint(tag, ENVIRON["msg_apm_desc"])
137d3a0f918SDevin Teske				if (ditem == char) defaultitem = tag
138641a6cfbSDevin Teske			}
139641a6cfbSDevin Teske
140d3a0f918SDevin Teske			printf separator
141641a6cfbSDevin Teske
142641a6cfbSDevin Teske			#
143641a6cfbSDevin Teske			# Startup dirs: Set the list of dirs to look for
144641a6cfbSDevin Teske			#               startup scripts
145641a6cfbSDevin Teske			#
146d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
147d3a0f918SDevin Teske			mark = ( length(ENVIRON["local_startup"]) > 0 \
148d3a0f918SDevin Teske					? "X" : " " )
149d3a0f918SDevin Teske			subtag = ENVIRON["msg_startup_dirs"]
150d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
151d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_startup_dirs_desc"])
152d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
153641a6cfbSDevin Teske
154641a6cfbSDevin Teske			#
155641a6cfbSDevin Teske			# named: Run a local name server on this host
156641a6cfbSDevin Teske			#
157d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
158d3a0f918SDevin Teske			mark = ( ENVIRON["named_enable"] ~ \
159d3a0f918SDevin Teske					/^[Yy][Ee][Ss]$/ ? "X" : " " )
160d3a0f918SDevin Teske			subtag = ENVIRON["msg_named"]
161d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
162d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_named_desc"])
163d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
164641a6cfbSDevin Teske
165641a6cfbSDevin Teske			#
166641a6cfbSDevin Teske			# named flags: Set default flags to named (if enabled)
167641a6cfbSDevin Teske			#
168d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
169d3a0f918SDevin Teske			mark = ( length(ENVIRON["named_flags"]) > 0 \
170d3a0f918SDevin Teske					? "X" : " " )
171d3a0f918SDevin Teske			subtag = ENVIRON["msg_named_flags"]
172d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
173d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_named_flags_desc"])
174d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
175641a6cfbSDevin Teske
176641a6cfbSDevin Teske			#
177641a6cfbSDevin Teske			# NIS client: This host wishes to be an NIS client.
178641a6cfbSDevin Teske			#
179d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
180d3a0f918SDevin Teske			mark = ( ENVIRON["nis_client_enable"] ~ \
181d3a0f918SDevin Teske					/^[Yy][Ee][Ss]$/ ? "X" : " " )
182d3a0f918SDevin Teske			subtag = ENVIRON["msg_nis_client"]
183d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
184d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_nis_client_desc"])
185d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
186641a6cfbSDevin Teske
187641a6cfbSDevin Teske			#
188641a6cfbSDevin Teske			# NIS domainname: Set NIS domainname (if enabled)
189641a6cfbSDevin Teske			#
190d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
191d3a0f918SDevin Teske			mark = ( length(ENVIRON["nisdomainname"]) > 0 && \
192d3a0f918SDevin Teske					ENVIRON["nisdomainname"] != "NO" \
193d3a0f918SDevin Teske					? "X" : " " )
194d3a0f918SDevin Teske			subtag = ENVIRON["msg_nis_domainname"]
195d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
196d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_nis_domainname_desc"])
197d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
198641a6cfbSDevin Teske
199641a6cfbSDevin Teske			#
200641a6cfbSDevin Teske			# NIS server: This host wishes to be an NIS server.
201641a6cfbSDevin Teske			#
202d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
203d3a0f918SDevin Teske			mark = ( ENVIRON["nis_server_enable"] ~ \
204d3a0f918SDevin Teske					/^[Yy][Ee][Ss]$/ ? "X" : " " )
205d3a0f918SDevin Teske			subtag = ENVIRON["msg_nis_server"]
206d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
207d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_nis_server_desc"])
208d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
209641a6cfbSDevin Teske
210d3a0f918SDevin Teske			printf separator
211641a6cfbSDevin Teske
212641a6cfbSDevin Teske			#
213641a6cfbSDevin Teske			# Accounting: This host wishes to run process
214641a6cfbSDevin Teske			#             accounting.
215641a6cfbSDevin Teske			#
216d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
217d3a0f918SDevin Teske			mark = ( ENVIRON["accounting_enable"] ~ \
218d3a0f918SDevin Teske					/^[Yy][Ee][Ss]$/ ? "X" : " " )
219d3a0f918SDevin Teske			subtag = ENVIRON["msg_accounting"]
220d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
221d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_accounting_desc"])
222d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
223641a6cfbSDevin Teske
224641a6cfbSDevin Teske			#
225641a6cfbSDevin Teske			# lpd: This host has a printer and wants to run lpd.
226641a6cfbSDevin Teske			#
227d3a0f918SDevin Teske			char = substr(menu_tags, i++, 1)
228d3a0f918SDevin Teske			mark = ( ENVIRON["lpd_enable"] ~ \
229d3a0f918SDevin Teske					/^[Yy][Ee][Ss]$/ ? "X" : " " )
230d3a0f918SDevin Teske			subtag = ENVIRON["msg_lpd"]
231d3a0f918SDevin Teske			tag = sprintf(mtag_fmt, char, mark, subtag)
232d3a0f918SDevin Teske			mprint(tag, ENVIRON["msg_lpd_desc"])
233d3a0f918SDevin Teske			if (ditem == char) defaultitem = tag
234641a6cfbSDevin Teske
235641a6cfbSDevin Teske			if ( uname_p == "i386" )
236641a6cfbSDevin Teske			{
237641a6cfbSDevin Teske				#
238641a6cfbSDevin Teske				# SCO: This host wants to be able to run IBCS2
239641a6cfbSDevin Teske				#      binaries.
240641a6cfbSDevin Teske				#
241d3a0f918SDevin Teske				char = substr(menu_tags, i++, 1)
242d3a0f918SDevin Teske				mark = ( ENVIRON["ibcs2_enable"] ~ \
243d3a0f918SDevin Teske						/^[Yy][Ee][Ss]$/ ? "X" : " " )
244d3a0f918SDevin Teske				subtag = ENVIRON["msg_sco"]
245d3a0f918SDevin Teske				tag = sprintf(mtag_fmt, char, mark, subtag)
246d3a0f918SDevin Teske				mprint(tag, ENVIRON["msg_sco_desc"])
247d3a0f918SDevin Teske				if (ditem == char) defaultitem = tag
248641a6cfbSDevin Teske
249641a6cfbSDevin Teske				#
250641a6cfbSDevin Teske				# SVR4: This host wants to be able to run SVR4
251641a6cfbSDevin Teske				#       binaries.
252641a6cfbSDevin Teske				#
253d3a0f918SDevin Teske				char = substr(menu_tags, i++, 1)
254d3a0f918SDevin Teske				mark = ( ENVIRON["svr4_enable"] ~ \
255d3a0f918SDevin Teske						/^[Yy][Ee][Ss]$/ ? "X" : " " )
256d3a0f918SDevin Teske				subtag = ENVIRON["msg_svr4"]
257d3a0f918SDevin Teske				tag = sprintf(mtag_fmt, char, mark, subtag)
258d3a0f918SDevin Teske				mprint(tag, ENVIRON["msg_svr4_desc"])
259d3a0f918SDevin Teske				if (ditem == char) defaultitem = tag
260641a6cfbSDevin Teske			}
261d3a0f918SDevin Teske
262d3a0f918SDevin Teske			printf "\"\n"
263d3a0f918SDevin Teske
264d3a0f918SDevin Teske			if ( defaultitem )
265d3a0f918SDevin Teske				printf "defaultitem=\"%s\"\n", defaultitem
266641a6cfbSDevin Teske		}'
267641a6cfbSDevin Teske	)"
268641a6cfbSDevin Teske
26974036c4dSDevin Teske	local height width rows
27074036c4dSDevin Teske	eval f_dialog_menu_size height width rows \
271641a6cfbSDevin Teske	                        \"\$DIALOG_TITLE\"     \
272641a6cfbSDevin Teske	                        \"\$DIALOG_BACKTITLE\" \
273641a6cfbSDevin Teske	                        \"\$prompt\"           \
274641a6cfbSDevin Teske	                        \"\$hline\"            \
27574036c4dSDevin Teske	                        $menu_list
276641a6cfbSDevin Teske
277fd962ac6SDevin Teske	local menu_choice
278fd962ac6SDevin Teske	menu_choice=$( eval $DIALOG \
279d3a0f918SDevin Teske		--title \"\$DIALOG_TITLE\"         \
280641a6cfbSDevin Teske		--backtitle \"\$DIALOG_BACKTITLE\" \
281641a6cfbSDevin Teske		--hline \"\$hline\"                \
282641a6cfbSDevin Teske		--ok-label \"\$msg_ok\"            \
283641a6cfbSDevin Teske		--cancel-label \"\$msg_cancel\"    \
284d3a0f918SDevin Teske		--default-item \"\$defaultitem\"   \
28574036c4dSDevin Teske		--menu \"\$prompt\"                \
28674036c4dSDevin Teske		$height $width $rows               \
287641a6cfbSDevin Teske		$menu_list                         \
28889498fdfSDevin Teske		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
28989498fdfSDevin Teske	)
29089498fdfSDevin Teske	local retval=$?
291fd962ac6SDevin Teske	f_dialog_data_sanitize menu_choice
292fd962ac6SDevin Teske	f_dialog_menutag_store "$menu_choice"
29377599778SDevin Teske	f_dialog_default_store "$menu_choice"
29489498fdfSDevin Teske	return $retval
295641a6cfbSDevin Teske}
296641a6cfbSDevin Teske
297641a6cfbSDevin Teske# dialog_input_value [ $prompt [ $init ] ]
298641a6cfbSDevin Teske#
299641a6cfbSDevin Teske# Prompt the user to input a value. If the user does not cancel or press ESC,
300641a6cfbSDevin Teske# the return value is zero ($SUCCESS) and $value holds the user's input.
301641a6cfbSDevin Teske#
302641a6cfbSDevin Teskedialog_input_value()
303641a6cfbSDevin Teske{
304298cf604SDevin Teske	local prompt="$1" _input="$2"
305641a6cfbSDevin Teske
306641a6cfbSDevin Teske	f_dialog_title "$msg_value_required"
307ec7120b5SDevin Teske	f_dialog_input _input "$prompt" "$_input" "$hline_alnum_tab_enter"
308298cf604SDevin Teske	local retval=$?
309641a6cfbSDevin Teske	f_dialog_title_restore
310641a6cfbSDevin Teske
311641a6cfbSDevin Teske	# Return if user has either pressed ESC or chosen Cancel/No
312641a6cfbSDevin Teske	[ $retval -eq $SUCCESS ] || return $retval
313641a6cfbSDevin Teske
314641a6cfbSDevin Teske	value="$_input"
315641a6cfbSDevin Teske	return $SUCCESS
316641a6cfbSDevin Teske}
317641a6cfbSDevin Teske
318641a6cfbSDevin Teske############################################################ MAIN
319641a6cfbSDevin Teske
320641a6cfbSDevin Teske# Incorporate rc-file if it exists
321641a6cfbSDevin Teske[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
322641a6cfbSDevin Teske
323641a6cfbSDevin Teske#
324641a6cfbSDevin Teske# Process command-line arguments
325641a6cfbSDevin Teske#
326c3755aa3SDevin Teskewhile getopts h$GETOPTS_STDARGS flag; do
327641a6cfbSDevin Teske	case "$flag" in
328641a6cfbSDevin Teske	h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
329641a6cfbSDevin Teske	esac
330641a6cfbSDevin Teskedone
331641a6cfbSDevin Teskeshift $(( $OPTIND - 1 ))
332641a6cfbSDevin Teske
333641a6cfbSDevin Teske#
334641a6cfbSDevin Teske# Initialize
335641a6cfbSDevin Teske#
336641a6cfbSDevin Teskef_dialog_title "$msg_miscellaneous_startup_services"
337641a6cfbSDevin Teskef_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
338641a6cfbSDevin Teskef_mustberoot_init
339641a6cfbSDevin Teske
340641a6cfbSDevin Teske#
341641a6cfbSDevin Teske# Launch application main menu
342641a6cfbSDevin Teske#
343641a6cfbSDevin Teskewhile :; do
344fd962ac6SDevin Teske	dialog_menu_main || f_die
345fd962ac6SDevin Teske	f_dialog_menutag_fetch mtag
346641a6cfbSDevin Teske
347641a6cfbSDevin Teske	case "$mtag" in
348641a6cfbSDevin Teske	"X <<< $msg_exit") break ;;
349641a6cfbSDevin Teske	?" ["?"] $msg_apm")
350641a6cfbSDevin Teske		case "$mtag" in
351641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set apm_enable NO 2>&1 ) ;;
352641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set apm_enable YES 2>&1 ) ;;
353641a6cfbSDevin Teske		esac
354db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
355641a6cfbSDevin Teske	?" ["?"] $msg_startup_dirs")
356641a6cfbSDevin Teske		dialog_input_value \
357641a6cfbSDevin Teske			"$msg_startup_dirs_desc" \
358641a6cfbSDevin Teske			"$( f_sysrc_get local_startup )"
359641a6cfbSDevin Teske		if [ $? -eq $SUCCESS ]; then
360641a6cfbSDevin Teske			err=$( f_sysrc_set local_startup "$value" ) ||
361db7b0ba7SDevin Teske				f_dialog_msgbox "$err\n"
362641a6cfbSDevin Teske		fi
363641a6cfbSDevin Teske		;;
364641a6cfbSDevin Teske	?" ["?"] $msg_named")
365641a6cfbSDevin Teske		case "$mtag" in
366641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set named_enable NO 2>&1 ) ;;
367641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set named_enable YES 2>&1 ) ;;
368641a6cfbSDevin Teske		esac
369db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
370641a6cfbSDevin Teske	?" ["?"] $msg_named_flags")
371641a6cfbSDevin Teske		dialog_input_value \
372641a6cfbSDevin Teske			"$msg_named_flags_desc" \
373641a6cfbSDevin Teske			"$( f_sysrc_get named_flags )"
374641a6cfbSDevin Teske		if [ $? -eq $SUCCESS ]; then
375641a6cfbSDevin Teske			err=$( f_sysrc_set named_flags "$value" ) ||
376db7b0ba7SDevin Teske				f_dialog_msgbox "$err\n"
377641a6cfbSDevin Teske		fi
378641a6cfbSDevin Teske		;;
379641a6cfbSDevin Teske	?" ["?"] $msg_nis_client")
380641a6cfbSDevin Teske		case "$mtag" in
381641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set nis_client_enable NO 2>&1 ) ;;
382641a6cfbSDevin Teske		?" [ ] "*)
383641a6cfbSDevin Teske			err=$( f_sysrc_set nis_client_enable YES 2>&1 ) \
384641a6cfbSDevin Teske			&& err=$( f_sysrc_set rpcbind_enable YES 2>&1 ) ;;
385641a6cfbSDevin Teske		esac
386db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
387641a6cfbSDevin Teske	?" ["?"] $msg_nis_domainname")
388641a6cfbSDevin Teske		dialog_input_value \
389641a6cfbSDevin Teske			"$msg_nis_domainname_desc" \
390641a6cfbSDevin Teske			"$( f_sysrc_get nisdomainname )"
391641a6cfbSDevin Teske		if [ $? -eq $SUCCESS ]; then
392641a6cfbSDevin Teske			err=$( f_sysrc_set nisdomainname "$value" ) ||
393db7b0ba7SDevin Teske				f_dialog_msgbox "$err\n"
394641a6cfbSDevin Teske		fi
395641a6cfbSDevin Teske		;;
396641a6cfbSDevin Teske	?" ["?"] $msg_nis_server")
397641a6cfbSDevin Teske		case "$mtag" in
398641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set nis_server_enable NO 2>&1 ) ;;
399641a6cfbSDevin Teske		?" [ ] "*)
400641a6cfbSDevin Teske			err=$( f_sysrc_set nis_server_enable YES 2>&1 ) \
401641a6cfbSDevin Teske			&& err=$( f_sysrc_set rpcbind_enable YES 2>&1 ) ;;
402641a6cfbSDevin Teske		esac
403db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
404641a6cfbSDevin Teske	?" ["?"] $msg_accounting")
405641a6cfbSDevin Teske		case "$mtag" in
406641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set accounting_enable NO 2>&1 ) ;;
407641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set accounting_enable YES 2>&1 ) ;;
408641a6cfbSDevin Teske		esac
409db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
410641a6cfbSDevin Teske	?" ["?"] $msg_lpd")
411641a6cfbSDevin Teske		case "$mtag" in
412641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set lpd_enable NO 2>&1 ) ;;
413641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set lpd_enable YES 2>&1 ) ;;
414641a6cfbSDevin Teske		esac
415db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
416641a6cfbSDevin Teske	?" ["?"] $msg_sco")
417641a6cfbSDevin Teske		case "$mtag" in
418641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set ibcs2_enable NO 2>&1 ) ;;
419641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set ibcs2_enable YES 2>&1 ) ;;
420641a6cfbSDevin Teske		esac
421db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
422641a6cfbSDevin Teske	?" ["?"] $msg_svr4")
423641a6cfbSDevin Teske		case "$mtag" in
424641a6cfbSDevin Teske		?" [X] "*) err=$( f_sysrc_set svr4_enable NO 2>&1 ) ;;
425641a6cfbSDevin Teske		?" [ ] "*) err=$( f_sysrc_set svr4_enable YES 2>&1 ) ;;
426641a6cfbSDevin Teske		esac
427db7b0ba7SDevin Teske		[ $? -eq $SUCCESS ] || f_dialog_msgbox "$err\n" ;;
428641a6cfbSDevin Teske	esac
429641a6cfbSDevin Teskedone
430641a6cfbSDevin Teske
431641a6cfbSDevin Teskeexit $SUCCESS
432641a6cfbSDevin Teske
433641a6cfbSDevin Teske################################################################################
434641a6cfbSDevin Teske# END
435641a6cfbSDevin Teske################################################################################
436