repeat revision 240768
190075Sobrien#!/bin/sh 290075Sobrien#- 3132718Skan# Copyright (c) 2012 Devin Teske 490075Sobrien# All Rights Reserved. 590075Sobrien# 690075Sobrien# Redistribution and use in source and binary forms, with or without 790075Sobrien# modification, are permitted provided that the following conditions 890075Sobrien# are met: 990075Sobrien# 1. Redistributions of source code must retain the above copyright 1090075Sobrien# notice, this list of conditions and the following disclaimer. 1190075Sobrien# 2. Redistributions in binary form must reproduce the above copyright 1290075Sobrien# notice, this list of conditions and the following disclaimer in the 1390075Sobrien# documentation and/or other materials provided with the distribution. 1490075Sobrien# 1590075Sobrien# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1690075Sobrien# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE 1790075Sobrien# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1890075Sobrien# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1990075Sobrien# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2090075Sobrien# DAMAGES (INLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2190075Sobrien# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2290075Sobrien# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2390075Sobrien# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2490075Sobrien# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25132718Skan# SUCH DAMAGE. 26132718Skan# 2790075Sobrien# $FreeBSD: head/usr.sbin/bsdconfig/console/repeat 240768 2012-09-20 23:44:13Z dteske $ 28117395Skan# 2990075Sobrien############################################################ INCLUDES 3090075Sobrien 3190075SobrienBSDCFG_SHARE="/usr/share/bsdconfig" 3290075Sobrien. $BSDCFG_SHARE/common.subr || exit 1 3390075Sobrienf_include $BSDCFG_SHARE/dialog.subr 3490075Sobrienf_include $BSDCFG_SHARE/mustberoot.subr 3590075Sobrienf_include $BSDCFG_SHARE/sysrc.subr 3690075Sobrien 3790075SobrienBSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="080.console" 3890075Sobrienf_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr 3990075Sobrien 4090075Sobrienipgm=$( f_index_menu_selection $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" ) 41132718Skan[ $? -eq $SUCCESS -a "$ipgm" ] && pgm="$ipgm" 4290075Sobrien 4390075Sobrien############################################################ FUNCTIONS 4490075Sobrien 4590075Sobrien# dialog_menu_main 4690075Sobrien# 4790075Sobrien# Display the dialog(1)-based application main menu. 4890075Sobrien# 4990075Sobriendialog_menu_main() 5090075Sobrien{ 5190075Sobrien local menu_list size 52132718Skan local hline="$hline_choose_a_keyboard_repeat_rate" 53132718Skan local prompt="$msg_repeat_menu_text" 54132718Skan 55132718Skan menu_list=" 56132718Skan '$msg_slow' '$msg_slow_desc' 57132718Skan '$msg_normal' '$msg_normal_desc' 58132718Skan '$msg_fast' '$msg_fast_desc' 59132718Skan '$msg_default' '$msg_default_desc' 60132718Skan " # END-QUOTE 6190075Sobrien 6290075Sobrien size=$( eval f_dialog_menu_size \ 6390075Sobrien \"\$DIALOG_TITLE\" \ 6490075Sobrien \"\$DIALOG_BACKTITLE\" \ 65132718Skan \"\$prompt\" \ 6690075Sobrien \"\$hline\" \ 67117395Skan $menu_list ) 6890075Sobrien 6990075Sobrien local dialog_menu 7090075Sobrien dialog_menu=$( eval $DIALOG \ 71117395Skan --clear --title \"\$DIALOG_TITLE\" \ 7290075Sobrien --backtitle \"\$DIALOG_BACKTITLE\" \ 7390075Sobrien --hline \"\$hline\" \ 7490075Sobrien --ok-label \"\$msg_ok\" \ 75132718Skan --cancel-label \"\$msg_cancel\" \ 76132718Skan --menu \"\$prompt\" $size \ 7790075Sobrien $menu_list \ 7890075Sobrien 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD 7990075Sobrien ) 8090075Sobrien local retval=$? 8190075Sobrien setvar DIALOG_MENU_$$ "$dialog_menu" 8290075Sobrien return $retval 8390075Sobrien} 8490075Sobrien 8590075Sobrien############################################################ MAIN 8690075Sobrien 8790075Sobrien# Incorporate rc-file if it exists 8890075Sobrien[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc" 8990075Sobrien 9096263Sobrien# 9196263Sobrien# Process command-line arguments 9290075Sobrien# 9396263Sobrienwhile getopts hSX flag; do 9490075Sobrien case "$flag" in 9596263Sobrien h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";; 9696263Sobrien esac 9796263Sobriendone 9890075Sobrienshift $(( $OPTIND - 1 )) 9996263Sobrien 10096263Sobrien# 10190075Sobrien# Initialize 10290075Sobrien# 10390075Sobrienf_dialog_init 10490075Sobrienf_dialog_title "$msg_system_console_keyboard_repeat_rate" 10590075Sobrienf_dialog_backtitle "${ipgm:+bsdconfig }$pgm" 106132718Skanf_mustberoot_init 10790075Sobrien 108132718Skan# 10990075Sobrien# Launch application main menu 11090075Sobrien# 111132718Skanwhile :; do 112132718Skan dialog_menu_main 113132718Skan retval=$? 114132718Skan mtag=$( f_dialog_menutag ) 115132718Skan 116132718Skan [ $retval -eq 0 ] || f_die 117132718Skan 118132718Skan case "$mtag" in 119132718Skan "$msg_slow") # Slow keyboard repeat rate 120132718Skan f_sysrc_set keyrate "slow" || f_die 121132718Skan break ;; 122132718Skan "$msg_normal") # "Normal" keyboard repeat rate 123132718Skan f_sysrc_set keyrate "normal" || f_die 124132718Skan break ;; 125132718Skan "$msg_fast") # Fast keyboard repeat rate 126132718Skan f_sysrc_set keyrate "fast" || f_die 127132718Skan break ;; 128132718Skan "$msg_default") # Use default keyboard repeat rate 129132718Skan f_sysrc_set keyrate "NO" || f_die 130132718Skan break ;; 131132718Skan esac 132132718Skan 13390075Sobriendone 13490075Sobrien 135132718Skanexit $SUCCESS 136132718Skan 137132718Skan################################################################################ 138117395Skan# END 139117395Skan################################################################################ 140117395Skan