#!/bin/bash
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh

if [[ $# -lt 1 ]] ; then
	echo "$0: at least one argument needed" 1>&2
	exit 1
fi

i18n=""

ret=0

for x in "$@" ; do
	if [[ ${x:0:6} == "-i18n=" ]] ; then
		i18n=${x:6}/
		continue
	fi
	if [[ ${x:0:6} == ".keep_" ]] ; then
		continue
	fi

	suffix=${x##*.}

	# These will be automatically decompressed by ecompressdir.
	if hasq ${suffix} Z gz bz2 ; then
		realname=${x%.*}
		suffix=${realname##*.}
	fi

	mandir=${i18n}man${suffix:0:1}

	if echo ${mandir} | egrep -q 'man[0-9n](|f|p|pm)$' -; then
		if [[ -s ${x} ]] ; then
			if [[ ! -d ${D}/usr/share/man/${mandir} ]] ; then
				install -d "${D}/usr/share/man/${mandir}"
			fi

			install -m0644 "${x}" "${D}/usr/share/man/${mandir}"
			((ret+=$?))
		elif [[ ! -e ${x} ]] ; then
			vecho "doman: ${x} does not exist" 1>&2
			((++ret))
		fi
	else
		vecho "doman: '${x}' is probably not a man page; skipping" 1>&2
		((++ret))
	fi
done

exit ${ret}
