From ffe2a5b5f70be05565b5a3038637805319088743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrich=20M=C3=BCller?= Date: Sat, 25 Aug 2012 13:00:51 -0700 Subject: EAPI 5: new* commands can read from stdin, bug 263565. --- bin/ebuild-helpers/newins | 55 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 16 deletions(-) (limited to 'bin/ebuild-helpers') diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/newins index 345c2290b..cf6436bc8 100755 --- a/bin/ebuild-helpers/newins +++ b/bin/ebuild-helpers/newins @@ -11,27 +11,50 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${helper}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${helper} called with more than 2 arguments: ${@:3}" -cp_args="-f" -if [[ ${helper} == newins ]] ; then - case "${EAPI}" in - 0|1|2|3) - ;; - *) - cp_args+=" -P" - ;; - esac +stdin= +case ${EAPI} in + 0|1|2|3|4|4-python|4-slot-abi) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; + esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${helper}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${helper}: $1 does not exist" + exit 1 + fi + + cp_args="-f" + if [[ ${helper} == newins ]] ; then + case "${EAPI}" in + 0|1|2|3) + ;; + *) + cp_args+=" -P" + ;; + esac + fi + + cp ${cp_args} "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} fi -rm -rf "${T}/$2" && \ -cp ${cp_args} "$1" "${T}/$2" && \ do${helper#new} "${T}/$2" ret=$? rm -rf "${T}/${2}" -- cgit v1.2.3-1-g7c22