80 lines
2.2 KiB
Bash
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
|