LFS-RPM/SOURCES/locale-gen

80 lines
2.2 KiB
Bash

#!/bin/sh
set -o errexit # exit if error...insurance ;)
set -o nounset # exit if variable not initalized
set +h # disable hashall
umask 022
LOCALEGEN=/etc/locale-gen.conf
LOCALES=/usr/share/i18n/locales
#-----------------------------------------------------------------------------
# Common support functions
function _die {
local _red="\\033[1;31m"
local _normal="\\033[0;39m"
[ -n "$*" ] && printf "${_red}$*${_normal}\n"
false
exit 1
}
function _msg {
printf "%s\n" "${1}"
return
}
function _msg_line {
printf "%s" "${1}"
return
}
function _msg_failure {
local _red="\\033[1;31m"
local _normal="\\033[0;39m"
printf "${_red}%s${_normal}\n" "FAILURE"
exit 2
}
function _msg_success {
local _green="\\033[1;32m"
local _normal="\\033[0;39m"
printf "${_green}%s${_normal}\n" "SUCCESS"
return
}
function _msg_log {
printf "\n%s\n\n" "${1}" >> ${_logfile} 2>&1
return
}
function _end_run {
local _green="\\033[1;32m"
local _normal="\\033[0;39m"
printf "${_green}%s${_normal}\n" "Run Complete"
return
}
#-----------------------------------------------------------------------------
# Functions
function is_entry_ok {
if [ -n "${inputfile}" -a -n "${charmap}" -a -n "${outputpath}" ];
then
true
else
_msg "error: Bad entry <${inputfile}>, <${charmap}>, <${outputpath}>"
false
fi
}
#-----------------------------------------------------------------------------
# Mainline
[ -f ${LOCALEGEN} -a -s ${LOCALEGEN} ] || exit 0;
# Remove all old locale dir and locale-archive
[ -d /usr/lib/locale ] || install -vdm 755 /usr/lib/locale
rm -rf /usr/lib/locale/* || true
_msg "Generating locales..."
while read inputfile charmap outputpath; do
case "${inputfile}" in
\#*) continue ;;
"") continue ;;
esac
is_entry_ok || continue
_msg_line " ${outputpath}: "
case "${outputpath}" in
C.UTF-8) localedef -c -i "${inputfile}" -f "${charmap}" -A /usr/share/locale/locale.alias "${outputpath}" 2> /dev/null || true ;;
ja_JP.SIJS) localedef -c -i "${inputfile}" -f "${charmap}" -A /usr/share/locale/locale.alias "${outputpath}" 2> /dev/null || true ;;
*) localedef -c -i "${inputfile}" -f "${charmap}" -A /usr/share/locale/locale.alias "${outputpath}" || true ;;
esac
_msg_success
done < "${LOCALEGEN}"
_end_run