summaryrefslogtreecommitdiff
path: root/src/instool
diff options
context:
space:
mode:
Diffstat (limited to 'src/instool')
-rwxr-xr-xsrc/instool35
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