1*1b8adde7SWilliam Kucharski#! /bin/sh 2*1b8adde7SWilliam Kucharski# Generate a terminfo command from a terminfo name. 3*1b8adde7SWilliam Kucharski# 4*1b8adde7SWilliam Kucharski# Copyright (C) 2002 Free Software Foundation, Inc. 5*1b8adde7SWilliam Kucharski# 6*1b8adde7SWilliam Kucharski# This file is free software; you can redistribute it and/or modify it 7*1b8adde7SWilliam Kucharski# under the terms of the GNU General Public License as published by 8*1b8adde7SWilliam Kucharski# the Free Software Foundation; either version 2 of the License, or 9*1b8adde7SWilliam Kucharski# (at your option) any later version. 10*1b8adde7SWilliam Kucharski# 11*1b8adde7SWilliam Kucharski# This program is distributed in the hope that it will be useful, but 12*1b8adde7SWilliam Kucharski# WITHOUT ANY WARRANTY; without even the implied warranty of 13*1b8adde7SWilliam Kucharski# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14*1b8adde7SWilliam Kucharski# General Public License for more details. 15*1b8adde7SWilliam Kucharski# 16*1b8adde7SWilliam Kucharski# You should have received a copy of the GNU General Public License 17*1b8adde7SWilliam Kucharski# along with this program; if not, write to the Free Software 18*1b8adde7SWilliam Kucharski# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19*1b8adde7SWilliam Kucharski 20*1b8adde7SWilliam KucharskiVERSION=@VERSION@ 21*1b8adde7SWilliam Kucharski 22*1b8adde7SWilliam Kucharskiusage () { 23*1b8adde7SWilliam Kucharski cat <<EOF 24*1b8adde7SWilliam KucharskiUsage: grub-terminfo TERMNAME 25*1b8adde7SWilliam KucharskiGenerate a terminfo command from a terminfo name. 26*1b8adde7SWilliam Kucharski 27*1b8adde7SWilliam Kucharski -h, --help print this message and exit 28*1b8adde7SWilliam Kucharski -v, --version print the version information and exit 29*1b8adde7SWilliam Kucharski 30*1b8adde7SWilliam KucharskiReport bugs to <bug-grub@gnu.org>. 31*1b8adde7SWilliam KucharskiEOF 32*1b8adde7SWilliam Kucharski} 33*1b8adde7SWilliam Kucharski 34*1b8adde7SWilliam Kucharskierror () { 35*1b8adde7SWilliam Kucharski echo "grub-terminfo: error: $1" 1>&2 36*1b8adde7SWilliam Kucharski} 37*1b8adde7SWilliam Kucharski 38*1b8adde7SWilliam Kucharskitermname= 39*1b8adde7SWilliam Kucharski 40*1b8adde7SWilliam Kucharskifor option in "$@"; do 41*1b8adde7SWilliam Kucharski case "$option" in 42*1b8adde7SWilliam Kucharski -h | --help) 43*1b8adde7SWilliam Kucharski usage 44*1b8adde7SWilliam Kucharski exit 0 ;; 45*1b8adde7SWilliam Kucharski -v | --version) 46*1b8adde7SWilliam Kucharski echo "grub-terminfo (GNU GRUB ${VERSION})" 47*1b8adde7SWilliam Kucharski exit 0 ;; 48*1b8adde7SWilliam Kucharski -*) 49*1b8adde7SWilliam Kucharski error "Unrecognized option \`$option'" 50*1b8adde7SWilliam Kucharski usage 51*1b8adde7SWilliam Kucharski exit 1 ;; 52*1b8adde7SWilliam Kucharski *) 53*1b8adde7SWilliam Kucharski if test "x$termname" != x; then 54*1b8adde7SWilliam Kucharski error "More than one terminfo names?" 55*1b8adde7SWilliam Kucharski usage 56*1b8adde7SWilliam Kucharski exit 1 57*1b8adde7SWilliam Kucharski fi 58*1b8adde7SWilliam Kucharski termname="$option" ;; 59*1b8adde7SWilliam Kucharski esac 60*1b8adde7SWilliam Kucharskidone 61*1b8adde7SWilliam Kucharski 62*1b8adde7SWilliam Kucharskiif test "x$termname" = x; then 63*1b8adde7SWilliam Kucharski error "termname not specified" 64*1b8adde7SWilliam Kucharski usage 65*1b8adde7SWilliam Kucharski exit 1 66*1b8adde7SWilliam Kucharskifi 67*1b8adde7SWilliam Kucharski 68*1b8adde7SWilliam Kucharskiget_seq () { 69*1b8adde7SWilliam Kucharski infocmp -L -1 -g $termname | sed -n -e "/$1/s/^[^=]*=\\(.*\\),\$/\\1/p" 70*1b8adde7SWilliam Kucharski} 71*1b8adde7SWilliam Kucharski 72*1b8adde7SWilliam Kucharskicursor_address="`get_seq cursor_address`" 73*1b8adde7SWilliam Kucharskiif test "x$cursor_address" = x; then 74*1b8adde7SWilliam Kucharski error "cursor_address not found" 75*1b8adde7SWilliam Kucharski exit 1 76*1b8adde7SWilliam Kucharskifi 77*1b8adde7SWilliam Kucharskicursor_address="--cursor-address=$cursor_address" 78*1b8adde7SWilliam Kucharski 79*1b8adde7SWilliam Kucharskiclear_screen="`get_seq clear_screen`" 80*1b8adde7SWilliam Kucharskiif test "x$clear_screen" != x; then 81*1b8adde7SWilliam Kucharski clear_screen="--clear-screen=$clear_screen" 82*1b8adde7SWilliam Kucharskifi 83*1b8adde7SWilliam Kucharski 84*1b8adde7SWilliam Kucharskienter_standout_mode="`get_seq enter_standout_mode`" 85*1b8adde7SWilliam Kucharskiif test "x$enter_standout_mode" != x; then 86*1b8adde7SWilliam Kucharski enter_standout_mode="--enter-standout-mode=$enter_standout_mode" 87*1b8adde7SWilliam Kucharskifi 88*1b8adde7SWilliam Kucharski 89*1b8adde7SWilliam Kucharskiexit_standout_mode="`get_seq exit_standout_mode`" 90*1b8adde7SWilliam Kucharskiif test "x$exit_standout_mode" != x; then 91*1b8adde7SWilliam Kucharski exit_standout_mode="--exit-standout-mode=$exit_standout_mode" 92*1b8adde7SWilliam Kucharskifi 93*1b8adde7SWilliam Kucharski 94*1b8adde7SWilliam Kucharskiecho "terminfo --name=$termname" $cursor_address $clear_screen \ 95*1b8adde7SWilliam Kucharski $enter_standout_mode $exit_standout_mode 96