mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
56 lines
1.1 KiB
Bash
Executable file
56 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
LOCALEGEN=/etc/locale.gen
|
|
LOCALES=/usr/share/i18n/locales
|
|
unset POSIXLY_CORRECT
|
|
|
|
[ -s "$LOCALEGEN" ] || exit 0
|
|
|
|
# Remove all old locale dir and locale-archive before generating new
|
|
# locale data.
|
|
rm -rf /usr/lib/locale/*
|
|
|
|
umask 022
|
|
|
|
gen() {
|
|
local locale=$1
|
|
local charset=$2
|
|
local input=
|
|
|
|
if [ -z "$locale" ] || [ -z "$charset" ]; then
|
|
echo "error: Bad entry '$locale $charset'"
|
|
return
|
|
fi
|
|
|
|
printf ' %s.%s\n' "$(echo "$locale" | sed 's/\([^.\@]*\).*/\1/')" "$charset"
|
|
|
|
if [ -f "$LOCALES/$locale" ]; then
|
|
input=$locale
|
|
else
|
|
input=$(echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/')
|
|
fi
|
|
|
|
localedef -i "$input" -c -f "$charset" -A /usr/share/locale/locale.alias "$locale"
|
|
}
|
|
|
|
maxjobs=$(grep -c processor /proc/cpuinfo 2>/dev/null || echo 1)
|
|
echo "Generating locales..."
|
|
while read locale charset; do \
|
|
case $locale in
|
|
\#*|'')
|
|
continue
|
|
;;
|
|
esac
|
|
gen "$locale" "$charset" &
|
|
|
|
# keep no more than $maxjobs jobs in flight
|
|
while [ $(jobs | wc -l) -ge $maxjobs ]; do
|
|
sleep 0.25
|
|
jobs >/dev/null
|
|
done
|
|
done < $LOCALEGEN
|
|
wait
|
|
|
|
echo "Generation complete."
|