port revision 244675
124139Sjoerg#!/bin/sh
289750Sdwmalone#-
389750Sdwmalone# Copyright (c) 2012 Devin Teske
424139Sjoerg# All Rights Reserved.
524139Sjoerg#
689750Sdwmalone# Redistribution and use in source and binary forms, with or without
724139Sjoerg# modification, are permitted provided that the following conditions
824139Sjoerg# are met:
924139Sjoerg# 1. Redistributions of source code must retain the above copyright
1024139Sjoerg#    notice, this list of conditions and the following disclaimer.
1124139Sjoerg# 2. Redistributions in binary form must reproduce the above copyright
1224139Sjoerg#    notice, this list of conditions and the following disclaimer in the
1324139Sjoerg#    documentation and/or other materials provided with the distribution.
1424139Sjoerg#
1524139Sjoerg# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1624139Sjoerg# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE
1724139Sjoerg# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1889750Sdwmalone# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1989750Sdwmalone# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2089750Sdwmalone# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2189750Sdwmalone# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2289750Sdwmalone# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2389750Sdwmalone# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2424139Sjoerg# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2524139Sjoerg# SUCH DAMAGE.
2689750Sdwmalone#
2789750Sdwmalone# $FreeBSD: head/usr.sbin/bsdconfig/mouse/port 244675 2012-12-25 10:47:45Z dteske $
2889750Sdwmalone#
2989750Sdwmalone############################################################ INCLUDES
3024139Sjoerg
3124139SjoergBSDCFG_SHARE="/usr/share/bsdconfig"
3224139Sjoerg. $BSDCFG_SHARE/common.subr || exit 1
3389750Sdwmalonef_dprintf "%s: loading includes..." "$0"
3489750Sdwmalonef_include $BSDCFG_SHARE/dialog.subr
3589750Sdwmalonef_include $BSDCFG_SHARE/mustberoot.subr
3689750Sdwmalonef_include $BSDCFG_SHARE/sysrc.subr
3789750Sdwmalone
3889750SdwmaloneBSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="110.mouse"
3989750Sdwmalonef_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
4024139Sjoerg
4189750Sdwmaloneipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
4289750Sdwmalone[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
4389750Sdwmalone
4489750Sdwmalone############################################################ FUNCTIONS
4589750Sdwmalone
4689750Sdwmalone# dialog_menu_main
4789750Sdwmalone#
4889750Sdwmalone# Display the dialog(1)-based application main menu.
4924139Sjoerg#
5089750Sdwmalonedialog_menu_main()
5124139Sjoerg{
5289750Sdwmalone	local menu_list size
5389750Sdwmalone	local hline=""
5489750Sdwmalone	local prompt="$msg_port_menu_text"
5589750Sdwmalone
5689750Sdwmalone	menu_list="
5724139Sjoerg		'1 $msg_ps2'      '$msg_ps2_desc'
5824139Sjoerg		'2 $msg_com1'     '$msg_com1_desc'
5924139Sjoerg		'3 $msg_com2'     '$msg_com2_desc'
6089750Sdwmalone		'4 $msg_com3'     '$msg_com3_desc'
6189750Sdwmalone		'5 $msg_com4'     '$msg_com4_desc'
6289750Sdwmalone		'6 $msg_busmouse' '$msg_busmouse_desc'
6389750Sdwmalone	" # END-QUOTE
6424139Sjoerg
6524139Sjoerg	size=$( eval f_dialog_menu_size \
6624139Sjoerg	        	\"\$DIALOG_TITLE\"     \
6724139Sjoerg	        	\"\$DIALOG_BACKTITLE\" \
6889750Sdwmalone	                \"\$prompt\"           \
6924139Sjoerg	        	\"\$hline\"            \
7024139Sjoerg	        	$menu_list             )
7124139Sjoerg
7224139Sjoerg	local dialog_menu
7324139Sjoerg	dialog_menu=$( eval $DIALOG \
7424139Sjoerg		--clear --title \"\$DIALOG_TITLE\" \
7524139Sjoerg		--backtitle \"\$DIALOG_BACKTITLE\" \
7624139Sjoerg		--hline \"\$hline\"                \
7724139Sjoerg		--ok-label \"\$msg_ok\"            \
7824139Sjoerg		--cancel-label \"\$msg_cancel\"    \
7924139Sjoerg		--menu \"\$prompt\" $size          \
8024139Sjoerg		$menu_list                         \
8124139Sjoerg		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
8224139Sjoerg	)
8324139Sjoerg	local retval=$?
8424139Sjoerg	setvar DIALOG_MENU_$$ "$dialog_menu"
8524139Sjoerg	return $retval
8624139Sjoerg}
8724139Sjoerg
8824139Sjoerg############################################################ MAIN
8924139Sjoerg
9024139Sjoerg# Incorporate rc-file if it exists
9189750Sdwmalone[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
9224139Sjoerg
9324139Sjoerg#
9424139Sjoerg# Process command-line arguments
9524139Sjoerg#
9624139Sjoergwhile getopts hSX flag; do
9724139Sjoerg	case "$flag" in
9824139Sjoerg	h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
9924139Sjoerg	esac
10024139Sjoergdone
10124139Sjoergshift $(( $OPTIND - 1 ))
10224139Sjoerg
10324139Sjoerg#
10424139Sjoerg# Initialize
10524139Sjoerg#
10624139Sjoergf_dialog_title "$msg_select_your_mouse_port_from_the_following_menu"
10724139Sjoergf_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
10824139Sjoergf_mustberoot_init
10924139Sjoerg
11024139Sjoerg#
11124139Sjoerg# Launch application main menu
11224139Sjoerg#
11324139Sjoergwhile :; do
11424139Sjoerg	dialog_menu_main
11524139Sjoerg	retval=$?
11624139Sjoerg	mtag=$( f_dialog_menutag )
11724139Sjoerg
11824139Sjoerg	[ $retval -eq 0 ] || f_die
11924139Sjoerg
12024139Sjoerg	case "$mtag" in
12124139Sjoerg	"1 $msg_ps2") # PS/2 style mouse (/dev/psm0)
12224139Sjoerg		f_sysrc_set moused_port "/dev/psm0" || f_die
12324139Sjoerg		break ;;
12424139Sjoerg	"2 $msg_com1") # Serial mouse on COM1 (/dev/cuau0)
12524139Sjoerg		f_sysrc_set moused_port "/dev/cuau0" || f_die
12624139Sjoerg		break ;;
12724139Sjoerg	"3 $msg_com2") # Serial mouse on COM2 (/dev/cuau1)
12824139Sjoerg		f_sysrc_set moused_port "/dev/cuau1" || f_die
12924139Sjoerg		break ;;
13024139Sjoerg	"4 $msg_com3") # Serial mouse on COM3 (/dev/cuau2)
13124139Sjoerg		f_sysrc_set moused_port "/dev/cuau2" || f_die
13224139Sjoerg		break ;;
13324139Sjoerg	"5 $msg_com4") # Serial mouse on COM4 (/dev/cuau3)
13424139Sjoerg		f_sysrc_set moused_port "/dev/cuau3" || f_die
13524139Sjoerg		break ;;
13624139Sjoerg	"6 $msg_busmouse") # Logitech, ATI or MS bus mouse (/dev/mse0)
13724139Sjoerg		f_sysrc_set moused_port "/dev/mse0" || f_die
13824139Sjoerg		break ;;
13924139Sjoerg	esac
14024139Sjoerg
14124139Sjoergdone
14224139Sjoerg
14389750Sdwmaloneexit $SUCCESS
14489750Sdwmalone
14589750Sdwmalone################################################################################
14689750Sdwmalone# END
14789750Sdwmalone################################################################################
14889750Sdwmalone