Deleted Added
full compact
repeat (240684) repeat (240768)
1#!/bin/sh
2#-
3# Copyright (c) 2012 Devin Teske
4# All Rights Reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26#
1#!/bin/sh
2#-
3# Copyright (c) 2012 Devin Teske
4# All Rights Reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26#
27# $FreeBSD: head/usr.sbin/bsdconfig/console/repeat 240684 2012-09-18 22:28:42Z dteske $
27# $FreeBSD: head/usr.sbin/bsdconfig/console/repeat 240768 2012-09-20 23:44:13Z dteske $
28#
29############################################################ INCLUDES
30
31BSDCFG_SHARE="/usr/share/bsdconfig"
32. $BSDCFG_SHARE/common.subr || exit 1
33f_include $BSDCFG_SHARE/dialog.subr
34f_include $BSDCFG_SHARE/mustberoot.subr
35f_include $BSDCFG_SHARE/sysrc.subr
36
37BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="080.console"
38f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
39
40ipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
41[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
42
43############################################################ FUNCTIONS
44
45# dialog_menu_main
46#
47# Display the dialog(1)-based application main menu.
48#
49dialog_menu_main()
50{
51 local menu_list size
52 local hline="$hline_choose_a_keyboard_repeat_rate"
53 local prompt="$msg_repeat_menu_text"
54
55 menu_list="
56 '$msg_slow' '$msg_slow_desc'
57 '$msg_normal' '$msg_normal_desc'
58 '$msg_fast' '$msg_fast_desc'
59 '$msg_default' '$msg_default_desc'
60 " # END-QUOTE
61
62 size=$( eval f_dialog_menu_size \
63 \"\$DIALOG_TITLE\" \
64 \"\$DIALOG_BACKTITLE\" \
65 \"\$prompt\" \
66 \"\$hline\" \
67 $menu_list )
68
28#
29############################################################ INCLUDES
30
31BSDCFG_SHARE="/usr/share/bsdconfig"
32. $BSDCFG_SHARE/common.subr || exit 1
33f_include $BSDCFG_SHARE/dialog.subr
34f_include $BSDCFG_SHARE/mustberoot.subr
35f_include $BSDCFG_SHARE/sysrc.subr
36
37BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="080.console"
38f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
39
40ipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
41[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm"
42
43############################################################ FUNCTIONS
44
45# dialog_menu_main
46#
47# Display the dialog(1)-based application main menu.
48#
49dialog_menu_main()
50{
51 local menu_list size
52 local hline="$hline_choose_a_keyboard_repeat_rate"
53 local prompt="$msg_repeat_menu_text"
54
55 menu_list="
56 '$msg_slow' '$msg_slow_desc'
57 '$msg_normal' '$msg_normal_desc'
58 '$msg_fast' '$msg_fast_desc'
59 '$msg_default' '$msg_default_desc'
60 " # END-QUOTE
61
62 size=$( eval f_dialog_menu_size \
63 \"\$DIALOG_TITLE\" \
64 \"\$DIALOG_BACKTITLE\" \
65 \"\$prompt\" \
66 \"\$hline\" \
67 $menu_list )
68
69 eval $DIALOG \
69 local dialog_menu
70 dialog_menu=$( eval $DIALOG \
70 --clear --title \"\$DIALOG_TITLE\" \
71 --backtitle \"\$DIALOG_BACKTITLE\" \
72 --hline \"\$hline\" \
73 --ok-label \"\$msg_ok\" \
74 --cancel-label \"\$msg_cancel\" \
75 --menu \"\$prompt\" $size \
76 $menu_list \
71 --clear --title \"\$DIALOG_TITLE\" \
72 --backtitle \"\$DIALOG_BACKTITLE\" \
73 --hline \"\$hline\" \
74 --ok-label \"\$msg_ok\" \
75 --cancel-label \"\$msg_cancel\" \
76 --menu \"\$prompt\" $size \
77 $menu_list \
77 2> "$DIALOG_TMPDIR/dialog.menu.$$"
78 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
79 )
80 local retval=$?
81 setvar DIALOG_MENU_$$ "$dialog_menu"
82 return $retval
78}
79
80############################################################ MAIN
81
82# Incorporate rc-file if it exists
83[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
84
85#
86# Process command-line arguments
87#
88while getopts hSX flag; do
89 case "$flag" in
90 h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
91 esac
92done
93shift $(( $OPTIND - 1 ))
94
95#
96# Initialize
97#
98f_dialog_init
99f_dialog_title "$msg_system_console_keyboard_repeat_rate"
100f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
101f_mustberoot_init
102
103#
104# Launch application main menu
105#
106while :; do
107 dialog_menu_main
108 retval=$?
109 mtag=$( f_dialog_menutag )
110
111 [ $retval -eq 0 ] || f_die
112
113 case "$mtag" in
114 "$msg_slow") # Slow keyboard repeat rate
115 f_sysrc_set keyrate "slow" || f_die
116 break ;;
117 "$msg_normal") # "Normal" keyboard repeat rate
118 f_sysrc_set keyrate "normal" || f_die
119 break ;;
120 "$msg_fast") # Fast keyboard repeat rate
121 f_sysrc_set keyrate "fast" || f_die
122 break ;;
123 "$msg_default") # Use default keyboard repeat rate
124 f_sysrc_set keyrate "NO" || f_die
125 break ;;
126 esac
127
128done
129
130exit $SUCCESS
131
132################################################################################
133# END
134################################################################################
83}
84
85############################################################ MAIN
86
87# Incorporate rc-file if it exists
88[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc"
89
90#
91# Process command-line arguments
92#
93while getopts hSX flag; do
94 case "$flag" in
95 h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
96 esac
97done
98shift $(( $OPTIND - 1 ))
99
100#
101# Initialize
102#
103f_dialog_init
104f_dialog_title "$msg_system_console_keyboard_repeat_rate"
105f_dialog_backtitle "${ipgm:+bsdconfig }$pgm"
106f_mustberoot_init
107
108#
109# Launch application main menu
110#
111while :; do
112 dialog_menu_main
113 retval=$?
114 mtag=$( f_dialog_menutag )
115
116 [ $retval -eq 0 ] || f_die
117
118 case "$mtag" in
119 "$msg_slow") # Slow keyboard repeat rate
120 f_sysrc_set keyrate "slow" || f_die
121 break ;;
122 "$msg_normal") # "Normal" keyboard repeat rate
123 f_sysrc_set keyrate "normal" || f_die
124 break ;;
125 "$msg_fast") # Fast keyboard repeat rate
126 f_sysrc_set keyrate "fast" || f_die
127 break ;;
128 "$msg_default") # Use default keyboard repeat rate
129 f_sysrc_set keyrate "NO" || f_die
130 break ;;
131 esac
132
133done
134
135exit $SUCCESS
136
137################################################################################
138# END
139################################################################################