svn commit: r238438 - in head: share/mk tools/build/options
usr.sbin usr.sbin/bsdconfig usr.sbin/bsdconfig/console
usr.sbin/bsdconfig/console/include
usr.sbin/bsdconfig/diskmgmt usr.sbin/bsdconfig/...
Devin Teske
dteske at FreeBSD.org
Sat Jul 14 03:16:59 UTC 2012
Author: dteske
Date: Sat Jul 14 03:16:57 2012
New Revision: 238438
URL: http://svn.freebsd.org/changeset/base/238438
Log:
Import bsdconfig(8) as a replacement for the post-install abilities of
deprecated sysinstall(8). NOTE: WITH_BSDCONFIG is currently required.
Submitted by: Devin Teske (dteske), Ron McDowell <rcm at fuzzwad.org>
Reviewed by: Ron McDowell <rcm at fuzzwad.org>
Approved by: Ed Maste (emaste)
Added:
head/tools/build/options/WITH_BSDCONFIG (contents, props changed)
head/usr.sbin/bsdconfig/
head/usr.sbin/bsdconfig/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/bsdconfig (contents, props changed)
head/usr.sbin/bsdconfig/bsdconfig.8 (contents, props changed)
head/usr.sbin/bsdconfig/console/
head/usr.sbin/bsdconfig/console/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/console/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/console/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/console/console (contents, props changed)
head/usr.sbin/bsdconfig/console/font (contents, props changed)
head/usr.sbin/bsdconfig/console/include/
head/usr.sbin/bsdconfig/console/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/console/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/console/keymap (contents, props changed)
head/usr.sbin/bsdconfig/console/repeat (contents, props changed)
head/usr.sbin/bsdconfig/console/saver (contents, props changed)
head/usr.sbin/bsdconfig/console/screenmap (contents, props changed)
head/usr.sbin/bsdconfig/console/ttys (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/
head/usr.sbin/bsdconfig/diskmgmt/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/diskmgmt (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/include/
head/usr.sbin/bsdconfig/diskmgmt/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/diskmgmt/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/
head/usr.sbin/bsdconfig/docsinstall/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/docsinstall (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/include/
head/usr.sbin/bsdconfig/docsinstall/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/docsinstall/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/dot/
head/usr.sbin/bsdconfig/dot/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/dot/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/dot/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/dot/dot (contents, props changed)
head/usr.sbin/bsdconfig/dot/include/
head/usr.sbin/bsdconfig/dot/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/dot/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/examples/
head/usr.sbin/bsdconfig/examples/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/examples/bsdconfigrc (contents, props changed)
head/usr.sbin/bsdconfig/fdisk/
head/usr.sbin/bsdconfig/include/
head/usr.sbin/bsdconfig/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/include/common.subr (contents, props changed)
head/usr.sbin/bsdconfig/include/dialog.subr (contents, props changed)
head/usr.sbin/bsdconfig/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/include/mustberoot.subr (contents, props changed)
head/usr.sbin/bsdconfig/include/strings.subr (contents, props changed)
head/usr.sbin/bsdconfig/include/sysrc.subr (contents, props changed)
head/usr.sbin/bsdconfig/mouse/
head/usr.sbin/bsdconfig/mouse/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/mouse/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/mouse/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/mouse/disable (contents, props changed)
head/usr.sbin/bsdconfig/mouse/enable (contents, props changed)
head/usr.sbin/bsdconfig/mouse/flags (contents, props changed)
head/usr.sbin/bsdconfig/mouse/include/
head/usr.sbin/bsdconfig/mouse/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/mouse/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/mouse/mouse (contents, props changed)
head/usr.sbin/bsdconfig/mouse/port (contents, props changed)
head/usr.sbin/bsdconfig/mouse/type (contents, props changed)
head/usr.sbin/bsdconfig/networking/
head/usr.sbin/bsdconfig/networking/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/networking/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/networking/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/networking/defaultrouter (contents, props changed)
head/usr.sbin/bsdconfig/networking/devices (contents, props changed)
head/usr.sbin/bsdconfig/networking/hostname (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/
head/usr.sbin/bsdconfig/networking/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/common.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/device.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/hostname.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/ipaddr.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/media.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/netmask.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/resolv.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/include/routing.subr (contents, props changed)
head/usr.sbin/bsdconfig/networking/nameservers (contents, props changed)
head/usr.sbin/bsdconfig/networking/networking (contents, props changed)
head/usr.sbin/bsdconfig/password/
head/usr.sbin/bsdconfig/password/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/password/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/password/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/password/include/
head/usr.sbin/bsdconfig/password/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/password/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/password/include/password.subr (contents, props changed)
head/usr.sbin/bsdconfig/password/password (contents, props changed)
head/usr.sbin/bsdconfig/security/
head/usr.sbin/bsdconfig/security/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/security/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/security/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/security/include/
head/usr.sbin/bsdconfig/security/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/security/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/security/kern_securelevel (contents, props changed)
head/usr.sbin/bsdconfig/security/security (contents, props changed)
head/usr.sbin/bsdconfig/startup/
head/usr.sbin/bsdconfig/startup/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/startup/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/startup/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/startup/include/
head/usr.sbin/bsdconfig/startup/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/startup/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/startup/include/rcconf.subr (contents, props changed)
head/usr.sbin/bsdconfig/startup/include/rcedit.subr (contents, props changed)
head/usr.sbin/bsdconfig/startup/include/rcvar.subr (contents, props changed)
head/usr.sbin/bsdconfig/startup/misc (contents, props changed)
head/usr.sbin/bsdconfig/startup/rcadd (contents, props changed)
head/usr.sbin/bsdconfig/startup/rcconf (contents, props changed)
head/usr.sbin/bsdconfig/startup/rcdelete (contents, props changed)
head/usr.sbin/bsdconfig/startup/rcedit (contents, props changed)
head/usr.sbin/bsdconfig/startup/rcvar (contents, props changed)
head/usr.sbin/bsdconfig/startup/startup (contents, props changed)
head/usr.sbin/bsdconfig/timezone/
head/usr.sbin/bsdconfig/timezone/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/timezone/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/timezone/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/
head/usr.sbin/bsdconfig/timezone/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/continents.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/countries.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/iso3166.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/menus.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/include/zones.subr (contents, props changed)
head/usr.sbin/bsdconfig/timezone/timezone (contents, props changed)
head/usr.sbin/bsdconfig/ttys/
head/usr.sbin/bsdconfig/ttys/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/ttys/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/ttys/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/ttys/include/
head/usr.sbin/bsdconfig/ttys/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/ttys/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/ttys/ttys (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/
head/usr.sbin/bsdconfig/usermgmt/INDEX (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/USAGE (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/groupadd (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/groupdel (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/groupedit (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/groupinput (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/include/
head/usr.sbin/bsdconfig/usermgmt/include/Makefile (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/include/group_input.subr (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/include/messages.subr (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/include/user_input.subr (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/useradd (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/userdel (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/useredit (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/userinput (contents, props changed)
head/usr.sbin/bsdconfig/usermgmt/usermgmt (contents, props changed)
Modified:
head/share/mk/bsd.own.mk
head/usr.sbin/Makefile
Modified: head/share/mk/bsd.own.mk
==============================================================================
--- head/share/mk/bsd.own.mk Sat Jul 14 02:59:11 2012 (r238437)
+++ head/share/mk/bsd.own.mk Sat Jul 14 03:16:57 2012 (r238438)
@@ -421,6 +421,7 @@ __DEFAULT_NO_OPTIONS = \
BIND_LIBS \
BIND_SIGCHASE \
BIND_XML \
+ BSDCONFIG \
CLANG_EXTRAS \
CLANG_IS_CC \
CTF \
Added: head/tools/build/options/WITH_BSDCONFIG
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/tools/build/options/WITH_BSDCONFIG Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,2 @@
+.\" $FreeBSD$
+Install bsdconfig(8), a BSD-licensed configuration/management utility.
Modified: head/usr.sbin/Makefile
==============================================================================
--- head/usr.sbin/Makefile Sat Jul 14 02:59:11 2012 (r238437)
+++ head/usr.sbin/Makefile Sat Jul 14 03:16:57 2012 (r238438)
@@ -144,6 +144,10 @@ SUBDIR+= rndc-confgen
SUBDIR+= bluetooth
.endif
+.if ${MK_BSDCONFIG} != "no"
+SUBDIR+= bsdconfig
+.endif
+
.if ${MK_BSNMP} != "no"
SUBDIR+= bsnmpd
.endif
Added: head/usr.sbin/bsdconfig/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/Makefile Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,32 @@
+# $FreeBSD$
+
+NO_OBJ=
+
+SUBDIR= console \
+ diskmgmt \
+ docsinstall \
+ dot \
+ examples \
+ include \
+ mouse \
+ networking \
+ password \
+ security \
+ startup \
+ timezone \
+ ttys \
+ usermgmt
+
+FILESDIR= ${LIBEXECDIR}/bsdconfig
+FILES= USAGE
+
+SCRIPTS= bsdconfig
+
+MAN= bsdconfig.8
+
+beforeinstall:
+ mkdir -p ${DESTDIR}${FILESDIR}
+ mkdir -p ${DESTDIR}${SCRIPTSDIR}
+ mkdir -p ${DESTDIR}${MANDIR}8
+
+.include <bsd.prog.mk>
Added: head/usr.sbin/bsdconfig/USAGE
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/USAGE Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,40 @@
+# Copyright (c) 2012 Ron McDowell
+# Copyright (c) 2012 Devin Teske
+# 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 (INLUDING, 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.
+#
+# $FreeBSD$
+
+Usage:
+ @PROGRAM_NAME@ [-h]
+ @PROGRAM_NAME@ command [-h]
+ @PROGRAM_NAME@ [OPTIONS] [command [OPTIONS]]
+
+OPTIONS:
+ -h Print usage statement and exit.
+ -S Secure X11 mode (implies `-X'). As root, always prompt-for
+ and validate sudo(8) username/password before starting.
+ -X Use Xdialog(1) in place of dialog(1).
+
+COMMANDS:
+ at COMMAND_LIST@
Added: head/usr.sbin/bsdconfig/bsdconfig
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/bsdconfig Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,313 @@
+#!/bin/sh
+#-
+# Copyright (c) 2012 Ron McDowell
+# Copyright (c) 2012 Devin Teske
+# 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+. $BSDCFG_LIBE/include/common.subr || exit 1
+f_include $BSDCFG_LIBE/include/dialog.subr
+f_include $BSDCFG_LIBE/include/mustberoot.subr
+f_include $BSDCFG_LIBE/include/strings.subr
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ FUNCTIONS
+
+# usage
+#
+# display usage and exit
+#
+usage()
+{
+ local index="INDEX" cmd_list=""
+
+ cd $BSDCFG_LIBE
+
+ # Test for language-specific indices
+ f_quietly ls */"$index.${LANG:-$LC_ALL}" &&
+ index="$index.${LANG:-$LC_ALL}"
+
+ cmd_list=$(
+ awk '/^menu_selection="/ {
+ sub(/\|.*/, "")
+ sub(/^menu_selection="/, "")
+ print
+ }' */$index | sort
+ )
+
+ #
+ # Determine the longest command-length (in characters)
+ #
+ local longest_cmd
+ longest_cmd=$( echo "$cmd_list" | f_longest_line_length )
+ f_dprintf "longest_cmd=[$longest_cmd]"
+
+ #
+ # Determine the maximum width of terminal/console
+ #
+ local max_size max_width
+ max_size=$( stty size 2> /dev/null )
+ : ${max_size:="24 80"}
+ max_width="${max_size#*[$IFS]}"
+ f_dprintf "max_width=[$max_width]"
+
+ #
+ # Using the longest command-length as the width of a single column,
+ # determine if we can use more than one column to display commands.
+ #
+ local x=$longest_cmd ncols=1
+ x=$(( $x + 8 )) # Accomodate leading tab character
+ x=$(( $x + 3 + $longest_cmd )) # Preload end of next column
+ while [ $x -lt $max_width ]; do
+ ncols=$(( $ncols + 1 ))
+ x=$(( $x + 3 + $longest_cmd ))
+ done
+ f_dprintf "ncols=[$ncols] x=[$x]"
+
+ #
+ # Re-format the command-list into multiple columns
+ #
+ cmd_list=$( eval "$( echo "$cmd_list" |
+ awk -v ncols=$ncols -v size=$longest_cmd '
+ BEGIN {
+ n = 0
+ row_item[1] = ""
+ }
+ function print_row()
+ {
+ fmt = "printf \"\\t%-" size "s"
+ for (i = 1; i < cur_col; i++)
+ fmt = fmt " %-" size "s"
+ fmt = fmt "\\n\""
+ printf "%s", fmt
+ for (i = 1; i <= cur_col; i++)
+ printf " \"%s\"", row_item[i]
+ print ""
+ }
+ {
+ n++
+ cur_col = (( n - 1 ) % ncols ) + 1
+ printf "f_dprintf \"row_item[%u]=[%s]\"\n", cur_col, $0
+ row_item[cur_col] = $0
+ if ( cur_col == ncols ) print_row()
+ }
+ END {
+ if ( cur_col < ncols ) print_row()
+ }' )"
+ )
+
+ f_usage $BSDCFG_LIBE/USAGE \
+ "PROGRAM_NAME" "$pgm" \
+ "COMMAND_LIST" "$cmd_list"
+}
+
+# dialog_menu_main
+#
+# Display the dialog(1)-based application main menu.
+#
+dialog_menu_main()
+{
+ local title="$DIALOG_TITLE"
+ local btitle="$DIALOG_BACKTITLE"
+ local prompt="$msg_menu_text"
+ local menu_list size
+
+ menu_list="
+ 'X' '$msg_exit' '$msg_exit_bsdconfig'
+ " # END-QUOTE
+
+ local sanitize_awk="{ gsub(/'/, \"'\\\\''\"); print }"
+
+ local menuitem menu_title menu_help menu_selection index=1
+ for menuitem in $( ls -d [0-9][0-9][0-9].* ); do
+ [ $index -lt ${#DIALOG_MENU_TAGS} ] || break
+ tag=$( f_substr "$DIALOG_MENU_TAGS" $index 1 )
+
+ menu_program=
+ menu_title=
+ menu_help=
+ f_include_lang $menuitem/INDEX
+ [ "$menu_program" ] || continue
+
+ case "$menu_program" in
+ /*) : already fully qualified ;;
+ *)
+ menu_program="$menuitem/$menu_program"
+ esac
+
+ menu_title=$( echo "$menu_title" | awk "$sanitize_awk" )
+ menu_help=$( echo "$menu_help" | awk "$sanitize_awk" )
+ setvar "menu_program$tag" "$menu_program"
+ menu_list="$menu_list '$tag' '$menu_title' '$menu_help'"
+
+ index=$(( $index + 1 ))
+ done
+
+ size=$( eval f_dialog_menu_with_help_size \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\" \
+ $menu_list )
+
+ eval $DIALOG \
+ --clear \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --item-help \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_exit_bsdconfig\" \
+ --menu \"\$prompt\" $size $menu_list \
+ 2> "$DIALOG_TMPDIR/dialog.menu.$$"
+}
+
+############################################################ MAIN
+
+#
+# Process command-line arguments
+#
+while getopts hSX flag; do
+ case "$flag" in
+ h|\?) usage;;
+ esac
+done
+shift $(( $OPTIND -1 ))
+
+#
+# Initialize
+#
+f_dialog_init
+f_dialog_title "$msg_main_menu"
+
+[ "$SECURE" ] && f_mustberoot_init
+
+# Incorporate rc-file if it exists
+[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
+
+#
+# Log our operating environment for debugging purposes
+#
+export UNAME_S="$(uname -s)" # Operating System (i.e. FreeBSD)
+export UNAME_P="$(uname -p)" # Processor Architecture (i.e. i386)
+export UNAME_R="$(uname -r)" # Release Level (i.e. X.Y-RELEASE)
+f_dprintf "UNAME_S=[$UNAME_S] UNAME_P=[$UNAME_P] UNAME_R=[$UNAME_R]"
+
+cd $BSDCFG_LIBE || f_die 1 "$msg_directory_not_found" "$BSDCFG_LIBE"
+
+#
+# If a non-option argument was passed, process it as a menuitem selection...
+#
+if [ "$1" ]; then
+ #
+ # ...unless it's a long-option for usage.
+ #
+ case "$1" in
+ -help|--help|-\?) usage;;
+ esac
+
+ #
+ # Find the INDEX (possibly i18n) claiming this keyword
+ #
+ lang="${LANG:-$LC_ALL}"
+ if [ "$lang" ]; then
+ sel=$( grep "^menu_selection=\"$1|" */INDEX.$lang \
+ 2> /dev/null | tail -1 )
+
+ # Fall-back to non-i18n sources if nothing was found
+ [ "$sel" ] ||
+ sel=$( grep "^menu_selection=\"$1|" */INDEX | tail -1 )
+ else
+ sel=$( grep "^menu_selection=\"$1|" */INDEX | tail -1 )
+ fi
+
+ #
+ # If no matches, display usage (which shows valid keywords)
+ #
+ if [ ! "$sel" ]; then
+ f_err "%s: %s: $msg_not_found\n" "$pgm" "$1"
+ usage
+ fi
+
+ #
+ # The command to execute is after the pipe-character (|) in the
+ # menu_selection property of the INDEX file for the menuitem.
+ #
+ cmd="${sel#*|}"
+ cmd="${cmd%\"}"
+ if [ ! "$cmd" ]; then
+ echo "$pgm: $1: $msg_not_found"
+ usage
+ fi
+ shift
+
+ #
+ # If the command pathname is not fully qualified fix-up/force to be
+ # relative to the menuitem directory.
+ #
+ case "$cmd" in
+ /*) : already fully qualified ;;
+ *)
+ dir="${sel%%/*}"
+ cmd="$dir/$cmd"
+ esac
+
+ exec $cmd ${USE_XDIALOG:+-X} "$@" || exit 1
+fi
+
+[ -f "$HOME/.bsdconfigrc" ] || f_dialog_msgbox "$msg_help_text"
+
+#
+# Launch application main menu
+#
+while :; do
+ dialog_menu_main
+ retval=$?
+ mtag=$( f_dialog_menutag )
+ f_dprintf "retval=$retval mtag=[$mtag]"
+
+ [ $retval -eq 0 ] || f_die
+
+ case "$mtag" in
+ X) # Exit
+ break
+ ;;
+
+ *) # Dynamically loaded menuitem
+ cmd=$( eval echo \"\$menu_program$mtag\" )
+ f_dprintf "cmd=[$cmd]"
+ $cmd ${USE_XDIALOG:+-X}
+ ;;
+
+ esac
+done
+
+exit $SUCCESS
+
+################################################################################
+# END
+################################################################################
Added: head/usr.sbin/bsdconfig/bsdconfig.8
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/bsdconfig.8 Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,240 @@
+.\" Copyright (c) 2012 Ron McDowell
+.\" Copyright (c) 2012 Devin Teske
+.\" 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 ``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 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.
+.\"
+.\" docsinstall
+.\" password
+.\" diskmgmt
+.\" usermgmt
+.\" useradd
+.\" useredit
+.\" userdel
+.\" groupmgmt
+.\" groupadd
+.\" groupedit
+.\" groupdel
+.\" console
+.\" syscons_font
+.\" syscons_keymap
+.\" syscons_repeat
+.\" syscons_saver
+.\" syscons_screenmap
+.\" syscons_ttys
+.\" timezone
+.\" mouse
+.\" mouse_enable
+.\" mouse_type
+.\" mouse_port
+.\" mouse_flags
+.\" mouse_disable
+.\" networking
+.\" defaultrouter
+.\" hostname
+.\" nameservers
+.\" netdev
+.\" security
+.\" ttys
+.\" [dot]
+.\"
+.\" $FreeBSD$
+.\"
+.Dd Mar 20, 2012
+.Dt BSDCONFIG 8
+.Os
+.Sh NAME
+.Nm bsdconfig
+.Nd system configuration utility
+.Sh SYNOPSIS
+.Nm
+.Op Fl h
+.Nm
+.Ar command
+.Op Fl h
+.Nm
+.Op OPTIONS
+.Op command Op OPTIONS
+.Sh DESCRIPTION
+.Nm
+is used to set up many system configuration settings, both for new systems, as
+well as changing configuration settings of existing systems.
+.Pp
+.Nm
+takes a command as an argument. If invoked with no arguments, it will bring up
+a master menu listing the available commands.
+.Pp
+The following options are available:
+.Bl -tag -width indent+
+.It Fl h
+Print usage statement and exit.
+.It Fl S
+Secure X11 mode
+.Pq implies Fl X .
+As root, always prompt-for and validate
+.Xr sudo 8
+username/password before starting.
+.It Fl X
+Use
+.Xr Xdialog 1
+in place of
+.Xr dialog 1 .
+
+.Sh COMMANDS
+The following commands
+.Pq sorted alphabetically
+are currently included in the base
+.Nm
+program, with more to be added soon. Other commands can be added, as detailed
+below in the
+.Cm ADDING COMMANDS
+section, and once added, will appear in the master menu as well as in the
+.Cm -h
+listing.
+.Bl -tag -width ".Cm syscons_screenmap"
+.It Cm console
+Utilities to customize the behavior of the system console.
+.It Cm defaultrouter
+Shortcut to the Default Router/Gateway menu under networking.
+.It Cm diskmgmt
+Manage disk partitions and/or labels. Executes
+.Xr sade 8 .
+.It Cm docsinstall
+Executes the
+.Cm bsdinstall docsinstall
+sub-utility to allow installation/re-installation of the FreeBSD Documentation
+set(s).
+.It Cm dot
+Generate a graphviz
+.Xr dot 1
+language file
+.Pq printed on stdout
+visualizing the
+.Xr bsdconfig 8
+menu, include, and shortcut structure and relationships. See
+.Dq bsdconfig dot -h
+for more details.
+.It Cm groupadd
+Shortcut to the Add Groups menu under groupmgmt.
+.It Cm groupdel
+Shortcut to the Delete Groups menu under groupmgmt.
+.It Cm groupedit
+Shortcut to the Edit/View Groups menu under groupmgmt.
+.It Cm groupmgmt
+Utilities to Add/Change/View/Delete Group Accounts.
+.It Cm hostname
+Shortcut to the Hostname/Domain menu under networking.
+.It Cm mouse
+Utilities for configuring, exploring, and enabling console mouse support.
+.It Cm mouse_disable
+Shortcut to the Disable menu under mouse.
+.It Cm mouse_enable
+Shortcut to the Enable menu under mouse.
+.It Cm mouse_flags
+Shortcut to the Flags menu under mouse.
+.It Cm mouse_port
+Shortcut to the Port menu under mouse.
+.It Cm mouse_type
+Shortcut to the Type menu under mouse.
+.It Cm nameservers
+Shortcut to the DNS Nameservers menu under networking.
+.It Cm netdev
+Shortcut to the Network Interfaces menu under networking.
+.It Cm networking
+Utilities to set/change Hostname/Domain, Network Interfaces, Default
+Router/Gateway, and DNS Nameservers.
+.It Cm password
+Set the system administrator
+.Pq root
+password.
+.It Cm security
+Configure various system security settings.
+.It Cm syscons_font
+Shortcut to the Font menu under console.
+.It Cm syscons_keymap
+Shortcut to the Keymap menu under console.
+.It Cm syscons_repeat
+Shortcut to the Repeat menu under console.
+.It Cm syscons_saver
+Shortcut to the Saver menu under console.
+.It Cm syscons_screenmap
+Shortcut to the Screenmap menu under console.
+.It Cm syscons_ttys
+Shortcut to the Ttys menu under console.
+.It Cm timezone
+Set the regional timezone of the local machine.
+.It Cm useradd
+Shortcut to the Add Users menu under usermgmt.
+.It Cm userdel
+Shortcut to the Delete Users menu under usermgmt.
+.It Cm useredit
+Shortcut to the Edit/View Users menu under usermgmt.
+.It Cm usermgmt
+Utilities to Add/Edit/View/Delete User Accounts.
+
+.Sh INTERNATIONALIZATION
+i18n features are built into
+.Nm
+and language-specific translation files will be added as they become available.
+In the absence of language-specific translation files, the default
+.Pq en_US.ISO8859-1
+files will be used.
+
+.Sh ADDING COMMANDS
+To be documented later. Document menu_selection="command|*" syntax of INDEX
+files.
+
+.Sh ENVIRONMENT VARIABLES
+The following environment variables affect the execution of
+.Nm :
+.Bl -tag -width ".Ev LC_ALL"
+.It Ev LANG
+If LANG is set, messages and index information will be read from files named
+messages.$LANG and INDEX.$LANG and fall back to files named messages and INDEX if
+messages.$LANG and INDEX.$LANG do not exist. LANG takes precedence over LC_ALL.
+.It Ev LC_ALL
+If LC_ALL is set, messages and index information will be read from files named
+messages.$LC_ALL and INDEX.$LC_ALL and fall back to files named messages and INDEX if
+messages.$LC_ALL and INDEX.$LC_ALL do not exist.
+
+.Sh FILES
+/usr/share/examples/bsdconfig/bsdconfigrc can be copied to $HOME/.bsdconfigrc and
+customized as needed.
+
+.Sh EXIT STATUS
+.Ex -std
+
+.Sh SEE ALSO
+.Xr host-setup 8
+
+.Sh HISTORY
+.Nm
+first appeared in
+.Fx 10.0 .
+
+.Sh AUTHORS
+.\" An -nosplit
+.An Ron McDowell Aq rcm at FuzzWad.ORG
+.An Devin Teske Aq devinteske at hotmail.com
+
+.Sh BUGS
+Undoubtedly.
Added: head/usr.sbin/bsdconfig/console/INDEX
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/console/INDEX Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,59 @@
+# Copyright (c) 2012 Ron McDowell
+# Copyright (c) 2012 Devin Teske
+# 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.
+#
+# $FreeBSD$
+
+#
+# Title that will be shown on the bsdconfig menu
+menu_title="Console"
+#
+# a short descriptive line shown at the bottom of the bsdconfig menu.
+# keep it short because any line longer than the terminal width will
+# be truncated.
+menu_help="Customize system console behavior"
+#
+# two-part variable that defines an action to take when 'keyword'
+# is passed on a bsdconfig command line. variable takes the form
+# "keyword|command" and multiple occurrences of the variable
+# (with different 'keyword's, or different 'keyword's AND 'command's)
+# are allowed. If 'command' begins with a '/' then the full
+# path to the program is needed. If 'command' begins with anything
+# else it is a path relative to the directory this INDEX file is in.
+# 'keyword' can be i18n'ed but 'command' is the name of a script.
+menu_selection="console|console"
+menu_selection="syscons_font|font"
+menu_selection="syscons_keymap|keymap"
+menu_selection="syscons_repeat|repeat"
+menu_selection="syscons_saver|saver"
+menu_selection="syscons_screenmap|screenmap"
+menu_selection="syscons_ttys|ttys"
+#
+# Items below this line do NOT need i18n translation----------------------
+#
+# Name of the program to be run when this menu choice is selected.
+# if it begins with a '/' then the full path to the program is needed.
+# if it begins with anything else it is a path relative to the directory
+# this INDEX file is in.
+menu_program="console"
Added: head/usr.sbin/bsdconfig/console/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/console/Makefile Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,16 @@
+# $FreeBSD$
+
+NO_OBJ=
+
+SUBDIR= include
+
+FILESDIR= ${LIBEXECDIR}/bsdconfig/080.console
+FILES= INDEX USAGE
+
+SCRIPTSDIR= ${FILESDIR}
+SCRIPTS= console font keymap repeat saver screenmap ttys
+
+beforeinstall:
+ mkdir -p ${DESTDIR}${FILESDIR}
+
+.include <bsd.prog.mk>
Added: head/usr.sbin/bsdconfig/console/USAGE
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/console/USAGE Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,33 @@
+# Copyright (c) 2012 Devin Teske
+# 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 (INLUDING, 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.
+#
+# $FreeBSD$
+
+Usage: bsdconfig @PROGRAM_NAME@ [OPTIONS]
+
+OPTIONS:
+ -h Print usage statement and exit.
+ -S Secure X11 mode (implies `-X'). As root, always prompt-for
+ and validate sudo(8) username/password before starting.
+ -X Use Xdialog(1) in place of dialog(1).
Added: head/usr.sbin/bsdconfig/console/console
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/console/console Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,137 @@
+#!/bin/sh
+#-
+# Copyright (c) 2012 Devin Teske
+# 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 (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+. $BSDCFG_LIBE/include/common.subr || exit 1
+f_include $BSDCFG_LIBE/include/dialog.subr
+f_include $BSDCFG_LIBE/include/mustberoot.subr
+
+APP_DIR="080.console"
+f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
+
+ipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
+[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
+
+############################################################ FUNCTIONS
+
+# dialog_menu_main
+#
+# Display the dialog(1)-based application main menu.
+#
+dialog_menu_main()
+{
+ local menu_list size
+ local hline="$hline_configure_system_console_settings"
+ local prompt="$msg_console_menu_text"
+
+ menu_list="
+ 'X $msg_exit' '$msg_exit_this_menu'
+ '2 $msg_font' '$msg_choose_alternate_screen_font'
+ '3 $msg_keymap' '$msg_choose_alternate_keyboard_map'
+ '4 $msg_repeat' '$msg_set_repeat_rate'
+ '5 $msg_saver' '$msg_configure_screen_saver'
+ '6 $msg_screenmap' '$msg_choose_alternate_screenmap'
+ '7 $msg_ttys' '$msg_choose_console_terminal_type'
+ " # END-QUOTE
+
+ size=$( eval f_dialog_menu_size \
+ \"\$DIALOG_TITLE\" \
+ \"\$DIALOG_BACKTITLE\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list )
+
+ eval $DIALOG \
+ --clear --title \"\$DIALOG_TITLE\" \
+ --backtitle \"\$DIALOG_BACKTITLE\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --menu \"\$prompt\" $size \
+ $menu_list \
+ 2> "$DIALOG_TMPDIR/dialog.menu.$$"
+}
+
+############################################################ MAIN
+
+# Incorporate rc-file if it exists
+[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
+
+#
+# Process command-line arguments
+#
+while getopts hSX flag; do
+ case "$flag" in
+ h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
+ esac
+done
+shift $(( $OPTIND - 1 ))
+
+#
+# Initialize
+#
+f_dialog_init
+f_dialog_title "$msg_system_console_configuration"
+f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
+f_mustberoot_init
+
+#
+# Launch application main menu
+#
+while :; do
+ dialog_menu_main
+ retval=$?
+ mtag=$( f_dialog_menutag )
+
+ [ $retval -eq 0 ] || f_die
+
+ case "$mtag" in
+ "X $msg_exit") break ;;
+ "2 $msg_font") # Choose an alternate screen font
+ $BSDCFG_LIBE/$APP_DIR/font ${USE_XDIALOG:+-X} ;;
+ "3 $msg_keymap") # Choose an alternate keyboard map
+ $BSDCFG_LIBE/$APP_DIR/keymap ${USE_XDIALOG:+-X} ;;
+ "4 $msg_repeat") # Set the rate at which keys repeat
+ $BSDCFG_LIBE/$APP_DIR/repeat ${USE_XDIALOG:+-X} ;;
+ "5 $msg_saver") # Configure the screen saver
+ $BSDCFG_LIBE/$APP_DIR/saver ${USE_XDIALOG:+-X} ;;
+ "6 $msg_screenmap") # Choose an alternate screenmap
+ $BSDCFG_LIBE/$APP_DIR/screenmap ${USE_XDIALOG:+-X} ;;
+ "7 $msg_ttys") # Choose console terminal type
+ $BSDCFG_LIBE/$APP_DIR/ttys ${USE_XDIALOG:+-X} ;;
+ esac
+
+done
+
+exit $SUCCESS
+
+################################################################################
+# END
+################################################################################
Added: head/usr.sbin/bsdconfig/console/font
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/usr.sbin/bsdconfig/console/font Sat Jul 14 03:16:57 2012 (r238438)
@@ -0,0 +1,205 @@
+#!/bin/sh
+#-
+# Copyright (c) 2012 Devin Teske
+# 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 (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+. $BSDCFG_LIBE/include/common.subr || exit 1
+f_include $BSDCFG_LIBE/include/dialog.subr
+f_include $BSDCFG_LIBE/include/mustberoot.subr
+f_include $BSDCFG_LIBE/include/sysrc.subr
+
+APP_DIR="080.console"
+f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
+
+ipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
+[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
+
+############################################################ FUNCTIONS
+
+# dialog_menu_main
+#
+# Display the dialog(1)-based application main menu.
+#
+dialog_menu_main()
+{
+ local menu_list size
+ local hline="$hline_choose_a_font"
+ local prompt="$msg_font_menu_text"
+
+ menu_list="
+ '1 $msg_none' '$msg_use_hardware_default_font'
+ '2 $msg_ibm_437' '$msg_ibm_437_desc'
+ '3 $msg_ibm_850' '$msg_ibm_850_desc'
+ '4 $msg_ibm_865' '$msg_ibm_865_desc'
+ '5 $msg_ibm_866' '$msg_ibm_866_desc'
+ '6 $msg_ibm_866u' '$msg_ibm_866u_desc'
+ '7 $msg_ibm_1251' '$msg_ibm_1251_desc'
+ '8 $msg_iso_8859_1' '$msg_iso_8859_1_desc'
+ '9 $msg_iso_8859_2' '$msg_iso_8859_2_desc'
+ 'a $msg_iso_8859_4' '$msg_iso_8859_4_desc'
+ 'b $msg_iso_8859_7' '$msg_iso_8859_7_desc'
+ 'c $msg_iso_8859_8' '$msg_iso_8859_8_desc'
+ 'd $msg_iso_8859_15' '$msg_iso_8859_15_desc'
+ 'e $msg_swiss' '$msg_swiss_desc'
+ " # END-QUOTE
+
+ size=$( eval f_dialog_menu_size \
+ \"\$DIALOG_TITLE\" \
+ \"\$DIALOG_BACKTITLE\" \
+ \"\$prompt\" \
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-head
mailing list