summaryrefslogtreecommitdiffstats
path: root/bin/doman
blob: 249768218652108f1d7eb09773ae1545dc3501a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/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

	if ! hasq "${EAPI:-0}" 0 1 && \
		[[ $x =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?)\.(.*) ]] ; then
		name=${BASH_REMATCH[1]##*/}.${BASH_REMATCH[4]}
		mandir=${BASH_REMATCH[2]}/man${suffix:0:1}
	else
		name=${x##*/}
		mandir=${i18n}man${suffix:0:1}
	fi


	if [[ ${mandir} =~ 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}/${name}"
			((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}