Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 210575 | Differences between
and this patch

Collapse All | Expand All

(-)doins.orig (-18 / +23 lines)
Lines 16-26 Link Here
16
else
16
else
17
	DOINSRECUR=n
17
	DOINSRECUR=n
18
fi
18
fi
19
[[ -z ${INSDEPTH} ]] && declare -i INSDEPTH=0
20
if [[ ${INSDEPTH} -gt 30 ]] ; then
21
	echo "${0##*/}: sanity check ... 30 directories is too much :(" 2>&1
22
	exit 1
23
fi
24
19
25
if [[ ${INSDESTTREE#${D}} != "${INSDESTTREE}" ]]; then
20
if [[ ${INSDESTTREE#${D}} != "${INSDESTTREE}" ]]; then
26
	vecho "-------------------------------------------------------" 1>&2
21
	vecho "-------------------------------------------------------" 1>&2
Lines 32-55 Link Here
32
27
33
[[ ! -d ${D}${INSDESTTREE} ]] && dodir "${INSDESTTREE}"
28
[[ ! -d ${D}${INSDESTTREE} ]] && dodir "${INSDESTTREE}"
34
29
30
_doins() {
31
	local mysrc="$1" mydir="$2"
32
33
	if [ -L "$1" ] ; then
34
		cp "$1" "${T}"
35
		mysrc="${T}/$(/usr/bin/basename "${1}")"
36
	fi
37
38
	install ${INSOPTIONS} "${mysrc}" "${D}${INSDESTTREE}/${mydir}"
39
}
40
41
_xdoins() {
42
	while read line; do
43
		_doins "${line}" "$(dirname "${line}")"
44
	done
45
}
46
35
for x in "$@" ; do
47
for x in "$@" ; do
36
	if [ -L "$x" ] ; then
48
	if [ -d "$x" ] ; then
37
		cp "$x" "${T}"
38
		mysrc="${T}/$(/usr/bin/basename "${x}")"
39
	elif [ -d "$x" ] ; then
40
		if [ "${DOINSRECUR}" == "n" ] ; then
49
		if [ "${DOINSRECUR}" == "n" ] ; then
41
			continue
50
			continue
42
		fi
51
		fi
43
52
44
		mydir="${INSDESTTREE}/$(basename "${x}")"
53
		pushd "${x}" >/dev/null
45
		find "${x}" -mindepth 1 -maxdepth 1 -exec \
54
		find -type d -exec dodir "${INSDESTTREE}/{}" \;
46
			env \
55
		find \( -type f -or -type l \) | _xdoins
47
				INSDESTTREE="${mydir}" \
56
		popd >/dev/null
48
				INSDEPTH=$((INSDEPTH+1)) \
49
				doins -r {} \;
50
		continue
51
	else
57
	else
52
		mysrc="${x}"
58
		_doins "${x}"
53
	fi
59
	fi
54
	install ${INSOPTIONS} "${mysrc}" "${D}${INSDESTTREE}"
55
done
60
done

Return to bug 210575