aboutsummaryrefslogtreecommitdiff
blob: fb228f90527682619de1d4fbc2a682bc70f27f53 (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
#!/bin/bash
# Copyright 1999-2011 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
	helpers_die "${0##*/}: at least one argument needed"
	exit 1
fi

[[ " ${FEATURES} " == *" force-prefix "* ]] || \
	case "$EAPI" in 0|1|2) ED=${D} ;; esac

if [[ ! -d ${ED}${_E_EXEDESTTREE_} ]] ; then
	install -d "${ED}${_E_EXEDESTTREE_}"
fi

TMP=$T/.doexe_tmp
mkdir "$TMP"

ret=0

for x in "$@" ; do
	if [ -L "${x}" ] ; then
		cp "$x" "$TMP"
		mysrc=$TMP/${x##*/}
	elif [ -d "${x}" ] ; then
		vecho "doexe: warning, skipping directory ${x}"
		continue
	else
		mysrc="${x}"
	fi
	if [ -e "$mysrc" ] ; then
		install $EXEOPTIONS "$mysrc" "$ED$_E_EXEDESTTREE_"
	else
		echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
		false
	fi
	((ret|=$?))
done

rm -rf "$TMP"

[[ $ret -ne 0 ]] && helpers_die "${0##*/} failed"
exit $ret