summarylogtreecommitdiffstats
path: root/locale-gen
blob: de48ddf8d501e4cd7577ddb206308fae16cb9ebc (plain)
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
#!/bin/sh --
# locale-gen: generate system locales

if [ ! -d /etc/locales ]; then
    printf '/etc/locales: no such directory\n' >&2
    exit 1
fi

localegen() {
    printf '%s: generating locale\n' "$1"."$2" >&2

    localedef -i "$1" -f "$2" -c "$1"."$2"

    case $? in
        4) printf '%s: invalid locale\n' "$1"."$2" >&2
    esac
}

for locale in /etc/locales/*; do
    if [ -f "$locale" ]; then
        if [ -s "$locale" ]; then
            while read -r charset; do

                # This will run for empty lines.  Doing this means we can
                # ensure at least a UTF-8 based locale is generated.
                localegen "${locale##*/}" "${charset:-UTF-8}"
            done < "$locale"
        else
            localegen "${locale##*/}" UTF-8
        fi
    fi
done