From 9c62a2f06c6969a256fe59996832a6e09f8fe069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrich=20M=C3=BCller?= Date: Wed, 15 Aug 2012 16:01:18 +0200 Subject: [PATCH] EAPI 5: new* commands can read from stdin, bug 263565. --- bin/ebuild-helpers/newbin | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newconfd | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newdoc | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newenvd | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newexe | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newinitd | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newins | 54 ++++++++++++++++++++++++++++-------------- bin/ebuild-helpers/newlib.a | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newlib.so | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newman | 36 ++++++++++++++++++++++----- bin/ebuild-helpers/newsbin | 36 ++++++++++++++++++++++----- 11 files changed, 326 insertions(+), 88 deletions(-) diff --git a/bin/ebuild-helpers/newbin b/bin/ebuild-helpers/newbin index bf98744..9232e45 100755 --- a/bin/ebuild-helpers/newbin +++ b/bin/ebuild-helpers/newbin @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec dobin "${T}/${2}" diff --git a/bin/ebuild-helpers/newconfd b/bin/ebuild-helpers/newconfd index fa3710d..88e425c 100755 --- a/bin/ebuild-helpers/newconfd +++ b/bin/ebuild-helpers/newconfd @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec doconfd "${T}/${2}" diff --git a/bin/ebuild-helpers/newdoc b/bin/ebuild-helpers/newdoc index df6fb1d..1f2317b 100755 --- a/bin/ebuild-helpers/newdoc +++ b/bin/ebuild-helpers/newdoc @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec dodoc "${T}/${2}" diff --git a/bin/ebuild-helpers/newenvd b/bin/ebuild-helpers/newenvd index c54af05..c85f6df 100755 --- a/bin/ebuild-helpers/newenvd +++ b/bin/ebuild-helpers/newenvd @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec doenvd "${T}/${2}" diff --git a/bin/ebuild-helpers/newexe b/bin/ebuild-helpers/newexe index 9bcf64b..681d0be 100755 --- a/bin/ebuild-helpers/newexe +++ b/bin/ebuild-helpers/newexe @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec doexe "${T}/${2}" diff --git a/bin/ebuild-helpers/newinitd b/bin/ebuild-helpers/newinitd index 03bbe68..8d239ce 100755 --- a/bin/ebuild-helpers/newinitd +++ b/bin/ebuild-helpers/newinitd @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec doinitd "${T}/${2}" diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/newins index b5b3ff6..d071e19 100755 --- a/bin/ebuild-helpers/newins +++ b/bin/ebuild-helpers/newins @@ -9,28 +9,46 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" || exit $? -case "$EAPI" in - 0|1|2|3) - cp "$1" "$T/$2" || exit $? - ;; - *) - cp -P "$1" "$T/$2" - ret=$? - if [[ $ret -ne 0 ]] ; then - helpers_die "${0##*/} failed" - exit $ret - fi - ;; +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + case "$EAPI" in + 0|1|2|3) + cp "$1" "${T}/$2" + ret=$? + ;; + *) + cp -P "$1" "${T}/$2" + ret=$? + ;; + esac +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + doins "${T}/${2}" ret=$? rm -rf "${T}/${2}" diff --git a/bin/ebuild-helpers/newlib.a b/bin/ebuild-helpers/newlib.a index 7ff8195..8499e90 100755 --- a/bin/ebuild-helpers/newlib.a +++ b/bin/ebuild-helpers/newlib.a @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec dolib.a "${T}/${2}" diff --git a/bin/ebuild-helpers/newlib.so b/bin/ebuild-helpers/newlib.so index fd4c097..e558c83 100755 --- a/bin/ebuild-helpers/newlib.so +++ b/bin/ebuild-helpers/newlib.so @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec dolib.so "${T}/${2}" diff --git a/bin/ebuild-helpers/newman b/bin/ebuild-helpers/newman index 889e0f9..f963f6a 100755 --- a/bin/ebuild-helpers/newman +++ b/bin/ebuild-helpers/newman @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec doman "${T}/${2}" diff --git a/bin/ebuild-helpers/newsbin b/bin/ebuild-helpers/newsbin index 9df0af2..7bf1c32 100755 --- a/bin/ebuild-helpers/newsbin +++ b/bin/ebuild-helpers/newsbin @@ -9,14 +9,36 @@ if [[ -z ${T} ]] || [[ -z ${2} ]] ; then exit 1 fi -if [ ! -e "$1" ] ; then - helpers_die "!!! ${0##*/}: $1 does not exist" - exit 1 -fi - (($#>2)) && \ eqawarn "QA Notice: ${0##*/} called with more than 2 arguments: ${@:3}" -rm -rf "${T}/${2}" && \ -cp -f "${1}" "${T}/${2}" && \ +stdin= +case ${EAPI} in + 0|1|2|3|4) ;; + *) [[ $1 = "-" ]] && stdin=yes ;; +esac + +rm -rf "${T}/$2" + +if [[ ${stdin} ]] ; then + if [[ -t 0 ]] ; then + helpers_die "!!! ${0##*/}: Input is from a terminal" + exit 1 + fi + cat > "${T}/$2" + ret=$? +else + if [[ ! -e $1 ]] ; then + helpers_die "!!! ${0##*/}: $1 does not exist" + exit 1 + fi + cp -f "$1" "${T}/$2" + ret=$? +fi + +if [[ ${ret} -ne 0 ]] ; then + helpers_die "${0##*/} failed" + exit ${ret} +fi + exec dosbin "${T}/${2}" -- 1.7.8.6