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

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

if [ $# -lt 1 ] ; then
	die "${0##*/}: at least one argument needed"
	exit 1
fi

dir="${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
if [ ! -d "${dir}" ] ; then
	install -d "${dir}"
fi

ret=0

DOINSRECUR="n"

if [[ "$1" == "-r" ]] ; then
	DOINSRECUR="y"
	shift
fi

for x in "$@" ; do

	if [ -d "${x}" ] ; then
		if [[ ${DOINSRECUR} == "n" ]] ; then
			continue
		fi

		find "${x}" -mindepth 1 -maxdepth 1 -exec \
			env \
				_E_DOCDESTTREE_="$(basename "${x}")" \
				${0} -r {} \;

	elif [ -s "${x}" ] ; then
		install -m0644 "${x}" "${dir}"
	elif [ ! -e "${x}" ] ; then
		echo "!!! ${0##*/}: $x does not exist" 1>&2
		((ret|=1))
	fi

done

[[ $ret -ne 0 ]] && die "$0 failed"
exit ${ret}
