85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| #!/sbin/runscript
 | |
| # Copyright 2007-2008 Roy Marples
 | |
| # All rights reserved
 | |
| 
 | |
| description="Sets a font for the consoles."
 | |
| 
 | |
| depend()
 | |
| {
 | |
| 	need localmount
 | |
| 	need keymaps    # sets up terminal encoding scheme
 | |
| 	after hotplug
 | |
| }
 | |
| 
 | |
| start()
 | |
| {
 | |
| 	# Forget about any font until we are successful
 | |
| 	rm -rf "${RC_LIBDIR}"/console
 | |
| 
 | |
| 	case "${RC_SYS}" in
 | |
| 		UML|VPS|XENU)
 | |
| 			ewarn "Not loading consolefont for ${RC_SYS} systems"
 | |
| 			return 0
 | |
| 			;;
 | |
| 	esac
 | |
| 
 | |
| 	ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
 | |
| 	consolefont=${consolefont:-${CONSOLEFONT}}
 | |
| 	unicodemap=${unicodemap:-${UNICODEMAP}}
 | |
| 	consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
 | |
| 
 | |
| 	if [ -z "${consolefont}" ]; then
 | |
| 		ebegin "Using the default console font"
 | |
| 		eend 0
 | |
| 		return 0
 | |
| 	fi
 | |
| 
 | |
| 	if [ "${ttyn}" = 0 ]; then
 | |
| 		ebegin "Skipping font setup (rc_tty_number == 0)"
 | |
| 		eend 0
 | |
| 		return 0
 | |
| 	fi
 | |
| 
 | |
| 	local x= param= sf_param= retval=0 ttydev=
 | |
| 
 | |
| 	# Get additional parameters
 | |
| 	if [ -n "${consoletranslation}" ]; then
 | |
| 		param="${param} -m ${consoletranslation}"
 | |
| 	fi
 | |
| 	if [ -n "${unicodemap}" ]; then
 | |
| 		param="${param} -u ${unicodemap}"
 | |
| 	fi
 | |
| 
 | |
| 	# Set the console font
 | |
| 	ebegin "Setting user font"
 | |
| 	[ -d /dev/vc ] \
 | |
| 		&& ttydev=/dev/vc/ \
 | |
| 		|| ttydev=/dev/tty
 | |
| 
 | |
| 	x=1
 | |
| 	while [ ${x} -le ${ttyn} ]; do
 | |
| 		setfont ${consolefont} ${param} -C ${ttydev}${x} >/dev/null 
 | |
| 		retval=$((${retval} + $?))
 | |
| 		x=$((${x} + 1))
 | |
| 	done
 | |
| 	eend ${retval}
 | |
| 
 | |
| 	# Store the last font so we can use it ASAP on boot
 | |
| 	if [ ${retval} -eq 0 -a -w "${RC_LIBDIR}" ]; then
 | |
| 		mkdir -p "${RC_LIBDIR}"/console
 | |
| 
 | |
| 		for font in /usr/share/consolefonts/"${consolefont}".*; do
 | |
| 			:
 | |
| 	     	done
 | |
| 		cp "${font}" "${RC_LIBDIR}"/console
 | |
| 		echo "${font##*/}" > "${RC_LIBDIR}"/console/font
 | |
| 		if yesno ${unicode:-${UNICODE}}; then
 | |
| 			cp /dev/null "${RC_LIBDIR}"/console/unicode
 | |
| 		else
 | |
| 			rm -f "${RC_LIBDIR}"/console/unicode
 | |
| 		fi
 | |
| 	fi
 | |
| 
 | |
| 	return ${retval}
 | |
| }
 |