diff options
Diffstat (limited to 'src/instool')
-rwxr-xr-x | src/instool | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/instool b/src/instool index 495bd41..139d32c 100755 --- a/src/instool +++ b/src/instool @@ -46,28 +46,33 @@ mkdirs() { fi } -man_dirnames() { - find -- "$@" 2>/dev/null | xargs -I% basename % | - sed 's|^\(.*\)\.\([a-z][a-z]\)\.\(.*\)$|\2/man\3|' -} +includedlang() { + lang="$1" + + if [ -z "${LOCALES:-}" ]; then + return 0 + fi -dirs_man() { - { - man_dirnames "$@" - man_dirnames "$@" | cut -d/ -f2- - } | LANG=POSIX.UTF-8 sort | uniq | mkdirs + printf '%s\n' "$LOCALES" | tr ',' '\n' | grep -qF "$lang" } type_man() { f="$1" lang="$( basename -- "$f" | cut -d. -f2)" + if ! includedlang "$lang"; then + return + fi section="$(basename -- "$f" | cut -d. -f3-)" name="$(basename -- "${f%."$lang"."$section"}")" nameext="$name.$section" + dir="$DIRECTORY"/"$lang"/man"${section}" if [ "$ACTION" = install ]; then + mkdir -p -- "$dir" cp -- "$f" "$DIRECTORY/$lang/man${section}/$nameext" - ln -fs "../en/man${section}/$nameext" \ - "$DIRECTORY/man${section}/$nameext" + if [ "$lang" = 'en' ] && false; then + ln -fs "../en/man${section}/$nameext" \ + "$DIRECTORY/man${section}/$nameext" + fi else rm -f -- \ "$DIRECTORY/$lang/man${section}/$nameext" \ @@ -75,13 +80,12 @@ type_man() { fi } -dirs_mo() { - true -} - type_mo() { f="$1" lang="$(basename -- "$f" .mo)" + if ! includedlang "$lang"; then + return + fi name="$(basename -- "$(dirname -- "$f")")" dir="$DIRECTORY"/"$lang"/LC_MESSAGES if [ "$ACTION" = install ]; then @@ -96,7 +100,6 @@ type_mo() { if [ $# = 0 ]; then exit fi -dirs_"$TYPE" "$@" for f in "$@"; do type_"$TYPE" "$f" done |