#!/bin/sh


: ${RPMCONFIGDIR:=/usr/lib/rpm}
RPM_FIND_LANG=$RPMCONFIGDIR/find-lang
RPM_FIND_LANG_OPTS="$@"

FindLang()
{
	local RLOCALE='\([a-z]\{2,3\}\)\(_[A-Z]\{2\}\)\?\(@[a-z]\{3,\}\)\?\(\.[A-Z][a-zA-Z0-9]\+\(-[A-Z0-9]\)\?\)\?'
	local RCLOCALE='\(C\|[a-z]\{2,3\}\)\(_[A-Z]\{2\}\)\?\(@[a-z]\{3,\}\)\?\(\.[A-Z][a-zA-Z0-9]\+\(-[A-Z0-9]\)\?\)\?'

	if [ -n "$ALL_NAME" ]; then
		PATTERN='[a-zA-Z0-9][a-zA-Z0-9._+-]*'
	else
		PATTERN="$NAME"
	fi
	
	# create if absent
	>>"$OUTFILE"

	# clean from Qtish language
	sed -i '/^%lang(qt).*\.qm$/d' "$OUTFILE"

	if true ; then
		find "$TOPDIR" -type f |sed -e '
s:'"$TOPDIR"'::
s:^[^/].*::
s:\(.*/locale/'"$RLOCALE"'/\([^/]\+/\)*'"$PATTERN"'\.qm\)$:%lang(\2) \1:
s:^[^%].*::
s:^%lang(en) ::
/^$/d
		'
		find "$TOPDIR" -type l |sed -e '
s:'"$TOPDIR"'::
s:^[^/].*::
s:\(.*/locale/'"$RLOCALE"'/\([^/]\+/\)*'"$PATTERN"'\.qm\)$:%lang(\2) %attr(-,root,root) \1:
s:^[^%].*::
s:^%lang(en) ::
/^$/d
		'
	fi >> "$OUTFILE"

}

TEMP=`getopt -n "$PROG" -o h -l with-qt,all-name,append,output:,topdir: -- "$@"` || exit 1
eval set -- "$TEMP"

: ${TOPDIR:=$RPM_BUILD_ROOT}
ALL_NAME=
OUTPUT=
NAME=
while :; do
	case "$1" in
		--all-name)
			ALL_NAME=1
			;;
		--output)
			shift
			OUTPUT="$1"
			;;
		--topdir)
			shift
			TOPDIR="$1"
			;;
		--)
			shift
			break
			;;
		*)
			;;
	esac
	shift
done

for NAME in "$@"; do
	if [ -n "$OUTPUT" ]; then
		OUTFILE="$OUTPUT"
	else
		OUTFILE="$NAME.lang"
	fi

	FindLang
done
