aboutsummaryrefslogtreecommitdiff
blob: 5030a0f2242cd3a3656f89d00051e6d19fa24095 (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
#!/usr/bin/env bash
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1

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

if ! ___eapi_has_prefix_variables; then
	ED=${D}
fi

if [[ ! -d ${ED%/}/${__E_EXEDESTTREE#/} ]] ; then
	install -d "${ED%/}/${__E_EXEDESTTREE#/}"
fi

TMP=$(mktemp -d "${T}/.doexe_tmp_XXXXXX")

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}