File: euro-test-es

package info (click to toggle)
user-es 0.34
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 304 kB
  • ctags: 18
  • sloc: perl: 322; sh: 240; makefile: 41
file content (266 lines) | stat: -rwxr-xr-x 7,915 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
#!/bin/sh

# Euro test
# Tests for the availability of euro sign in GNU/Linux systesm
#
# (c) 2001 Javier Fernndez-Sanguino Pea <jfs@debian.org>
#
# TODO
# - Join final information on X and console (it's more or less similar)
# - add UTF support?

function print_euro_iso8859_15 {
	gettext "Imprimiendo el caracter euro (ISO8859-15): "
	printf "\xa4\n"
}

function print_euro_utf {
	gettext "Imprimiendo el caracter euro (UTF): "
	printf "\xe2\x82\xac\n"
}

function read_answer {
	gettext "Puede ver el caracter euro en la lnea anterior? (s/N) "
	read sino
	case "$sino" in
	s*|S*|y*|Y*)	answer=1;;
	*) 	answer=0;;
	esac
}
function test_euro_font {
	print_euro_iso8859_15
	read_answer
	[ $answer = 1 ] && { 
		gettext -s "Su fuente tiene soporte de euro (ISO8859-15)"
		eurofont="iso8859"
		return 0
	}
	print_euro_utf
	read_answer
	[ $answer = 1 ] && { 
		gettext -s "Su fuente tiene soporte de euro (UTF-8)"
		eurofont="utf"
		return 0
	}
	gettext -s "Su fuente no tiene soporte de euro."
	eurofont=""
	return 1
}

function test_euro_key {
	gettext  "Pulse la combinacin de teclas Alt Gr+e: "
	read test
	read_answer
	[ $answer = 1 ] && {
		gettext -s "Su teclado est configurado para soportar el euro."
		eurokey=1
		return 0
	}
	gettext -s "Su teclado no est configurado para soportar el euro."
	eurokey=0
	return 1
}

function set_console_euro_font {
	gettext -s "Instalando una fuente con soporte de euros"
	if [ -f /usr/bin/consolechars ] 
	then
		consolechars -f lat0-16 || {
# Test with other lat0/lat9 fonts??
# This part takes the first one available (might be too ugly)
			for i in /usr/share/consolefonts/lat0*; do
			consolechars -f $i && break
			done
		}
	else
# TODO: Make it work also with setfont (old console-tools package)
		gettext -s "No puedo instalar una fuente nueva, no encuentro el programa consolechars"
	fi
}

function set_console_euro_key {
	gettext -s "Reconfigurando el teclado"
	if [ -f /bin/loadkeys ] ; then
	loadkeys euro.inc.gz || {
		gettext -s "Error al reconfigurar el teclado"
		if [ ! -f /usr/share/keymaps/i386/include/euro.inc.gz ]
		then
			gettext -s "Su sistema no tiene la definicin de euros instalada"
		else
			gettext -s "Su definicin de euros no es correcta o no ha podido ser cargada"
		fi
		gettext -s "Intentando carga manual"
		echo -e "altgr keycode 18 = currency \n altgr keycode 46 = cent " | loadkeys - 
	}
	else
		gettext -s "No encuentro loadkeys, no es posible reconfigurar el teclado"
	fi
		
}

function set_X_euro_font {
	gettext -s "Comprobando fuentes instaladas en X"
	X_fonts=`xlsfonts | grep iso8859-15$`
	if [ ! -z "$X_fonts" ] 
	then
# We could take the first font here and launch a new xterm with it
		gettext -s "Las siguientes fuentes con soporte euro estn instaladas en tu sistema:"
		echo $X_fonts
		if [ "$ARG" = "X" ] 
		then
			gettext -s "No ha sido posible ejecutar un terminal con fuente con soporte en euros (segundo intento)."
		else
			gettext -s "Se va a ejecutar de nuevo este programa con un terminal que las cargue"
			gettext -s "(utilizando 'xterm -fn \"nombre_de_fuente\")"
			xfont=`echo $X_fonts | cut -f 1 -d " "`
			xterm -fn "$xfont" -e $0 X
		fi 
		exit 0
	else
		gettext -s "No tienes fuentes instaladas con soporte euro"
		gettext -s "Instala los paquetes: xfonts-base-transcoded, xfonts-100dpi-transcodecd"	
		gettext -s "y xfonts-75dpi-transcoded"
	fi
}

function set_X_euro_key {
	gettext -s "Reconfigurando el teclado en X"
	echo "keycode 0x1A = e	E currency currency" | xmodmap -
}

function test_euro_console {
	gettext -s "Probando en entorno de texto (consola)"
	test_euro_font || set_font=1
	[ $set_font = 1 ] && { 
		set_console_euro_font 
		test_euro_font 
	}
	test_euro_key ||  set_key=1
	[ $set_key = 1 ] &&  { 
		set_console_euro_key
		test_euro_key
	 }
# TODO: Is this necessary? (restore the console font)
	[ $set_font = 1 ] && consolechars -d 
	if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] 
	then
		gettext -s "ENHORABUENA! Su sistema est preparado para representar euros (en consola)."
	else
		gettext -s "Para poder representar euros en su sistema deber:"
		[ $set_font = 1  -a -z "$eurofont" ] && gettext -es "\tInstalar una fuente de consola para euros."
		[ $set_font = 1 -a ! -z "$eurofont" ] && gettext -es "\tPoner como fuente de su consola una con soporte de euros."
		[ $set_key = 1 -a $eurokey = 1 ] && gettext -es "\tConfigurar su teclado para que AltGr+E genere el simbolo euro."
		[ $set_key = 1 -a $eurokey = 0 ] && gettext -es "\tInstalar soporte a su teclado para generar la combinacin de euro"
	fi
}

function test_euro_X {
	gettext -s "Probando en entorno grfico (X)"
	test_euro_font || set_font=1
	[ $set_font = 1 ] && { 
		set_X_euro_font 
		test_euro_font 
	}
	test_euro_key ||  set_key=1
	[ $set_key = 1 ] &&  { 
		set_X_euro_key
		test_euro_key
	 }
	if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] 
	then
		gettext -s "ENHORABUENA! Su sistema est preparado para representar euros (en X)."
	else
		gettext -s "Para poder representar euros en su sistema deber:"
		[ $set_font = 1  -a -z "$eurofont" ] && gettext -es "\tInstalar una fuente de X para euros."
		[ $set_font = 1 -a ! -z "$eurofont" ] && gettext -es "\tPoner como fuente de su terminal X una con soporte de euros."
		[ $set_key = 1 -a $eurokey = 1 ] && gettext -es "\tConfigurar su teclado para que AltGr+E genere el simbolo euro."
		[ $set_key = 1 -a $eurokey = 0 ] && gettext -es "\tInstalar soporte a su teclado para generar la combinacin de euro"
	fi
# TODO: Add info on X packages with euro keys
	if [ "$ARG" = "X" ] ; then
		gettext -s "Pulse <ENTER> para terminar"
		read
	fi
}

function info_system {
	gettext -s "Informacin del sistema (enviar a user-es@packages.debian.org)"
	if [ -f /etc/debian_version ]
	then
		version=`cat /etc/debian_version`
		gettext -es "Version Debian GNU/Linux: $version"
	fi
	case $1 in
	"console" )
		gettext -s "Informacin de paquetes en consola (puede tardar unos segundos):"
		dpkg -l console-tools |grep ^i 
		dpkg -l console-data |grep ^i 
		if [ -f /etc/console-tools/config ] ; then
			echo "------- /etc/console-tools/config ------------"
			cat /etc/console-tools/config
			echo "------- /etc/console-tools/config ------------"
		fi
		;;
	"X" )
		gettext -s "Informacin de paquetes de X (puede tardar unos segundos):"
		dpkg -l xfree* |grep ^i
		dpkg -l xbase* |grep ^i
		dpkg -l xfonts* |grep ^i
		for config in /etc/X11/XF86Config-4 /etc/X11/XF86Config
		do
		if [ -f $config ] ; then
			echo "------- $config ------------"
			grep -2 -i xkb $config
			echo "------- $config ------------"
		fi
		done
		;;
	esac
}

# Program starts here
TEXTDOMAIN="user-es"
ARG=$1

OUTFILE="./euro-test.log"
set_font=0
set_key=0
eurokey=0
eurofont=""

if [ -z "$DISPLAY" ] 
then
	test_euro_console
else
	test_euro_X
fi

gettext "Desea que se genere un fichero con los resultados del test? (s/N) "
read sino
case "$sino" in
s*|S*)	
	gettext -s "La generacin de resultados llevar unos segundos."
	gettext "Comenzando generacin de resultados..."
	date=`date`
	echo "Resultados obtenidos en $date" >>$OUTFILE
	if [ ! -z "$eurofont" -a $eurokey = 1 -a $set_font = 0 -a $set_key = 0 ] 
	then
		echo "RES: El sistema esta configurado para funcionar con euros" >>$OUTFILE
	else
		echo "RES: El sistema no esta configurado correctamente" >>$OUTFILE
		[ $set_font = 1  -a -z "$eurofont" ] && echo -e "\tFuente no instalada" >>$OUTFILE
		[ $set_font = 1 -a ! -z "$eurofont" ] && echo -e "\tFuente no configurada" >>$OUTFILE
		[ $set_key = 1 -a $eurokey = 1 ] && echo -e "\tTeclado no configurado" >>$OUTFILE
		[ $set_key = 1 -a $eurokey = 0 ] && echo -e "\tNo hay soporte de teclado" >>$OUTFILE
	fi
	if [ -z "$DISPLAY" ] 
	then
		info_system console >>$OUTFILE
	else
		info_system X >>$OUTFILE
	fi
	gettext -s "..terminada."
	gettext -s "Enve el fichero $OUTFILE al desarrollador del paquete."
	;;
*) 	;;
esac