#!/bin/bash
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: /var/cvsroot/gentoo-src/portage/bin/doman,v 1.13.2.2 2005/07/29 05:55:34 vapier Exp $

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} == ".keep" ]] ; then
		continue
	fi

	suffix=${x##*.}

	if [[ ${suffix} == "gz" ]] ; then
		realname=${x%.*}
		suffix=${realname##*.}
		vecho "QA Notice: you should let portage compress '${realname}' for you" 2>&1
	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}
