Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-portage-dev] [PATCH 05/10] isolated-functions.sh: Ensure informational command output to stderr
Date: Mon, 26 Feb 2018 16:01:09
Message-Id: 20180226155942.9148-6-mgorny@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH 00/10] EAPI 7, part one by "Michał Górny"
1 Ensure that einfo, elog, ewarn... commands direct all output to stderr
2 consistently. This ensures that various logging messages won't pollute
3 stdout, and therefore be accidentally caught in $().
4
5 This satisfies the 'output commands do not pollute' stdout requirement
6 that is tentatively included in EAPI 7.
7
8 Bug: https://bugs.gentoo.org/483240
9 ---
10 bin/isolated-functions.sh | 30 +++++++++++++++---------------
11 1 file changed, 15 insertions(+), 15 deletions(-)
12
13 diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
14 index 1ca959bb3..0acb81607 100644
15 --- a/bin/isolated-functions.sh
16 +++ b/bin/isolated-functions.sh
17 @@ -1,5 +1,5 @@
18 #!/bin/bash
19 -# Copyright 1999-2016 Gentoo Foundation
20 +# Copyright 1999-2018 Gentoo Foundation
21 # Distributed under the terms of the GNU General Public License v2
22
23 source "${PORTAGE_BIN_PATH}/eapi.sh" || exit 1
24 @@ -247,7 +247,7 @@ __quiet_mode() {
25 }
26
27 __vecho() {
28 - __quiet_mode || echo "$@"
29 + __quiet_mode || echo "$@" >&2
30 }
31
32 # Internal logging function, don't use this in ebuilds
33 @@ -273,9 +273,9 @@ __elog_base() {
34
35 eqawarn() {
36 __elog_base QA "$*"
37 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
38 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
39 echo -e "$@" | while read -r ; do
40 - __vecho " $WARN*$NORMAL $REPLY" >&2
41 + __vecho " $WARN*$NORMAL $REPLY"
42 done
43 LAST_E_CMD="eqawarn"
44 return 0
45 @@ -283,9 +283,9 @@ eqawarn() {
46
47 elog() {
48 __elog_base LOG "$*"
49 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
50 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
51 echo -e "$@" | while read -r ; do
52 - echo " $GOOD*$NORMAL $REPLY"
53 + echo " $GOOD*$NORMAL $REPLY" >&2
54 done
55 LAST_E_CMD="elog"
56 return 0
57 @@ -293,9 +293,9 @@ elog() {
58
59 einfo() {
60 __elog_base INFO "$*"
61 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
62 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
63 echo -e "$@" | while read -r ; do
64 - echo " $GOOD*$NORMAL $REPLY"
65 + echo " $GOOD*$NORMAL $REPLY" >&2
66 done
67 LAST_E_CMD="einfo"
68 return 0
69 @@ -303,15 +303,15 @@ einfo() {
70
71 einfon() {
72 __elog_base INFO "$*"
73 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
74 - echo -ne " ${GOOD}*${NORMAL} $*"
75 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
76 + echo -ne " ${GOOD}*${NORMAL} $*" >&2
77 LAST_E_CMD="einfon"
78 return 0
79 }
80
81 ewarn() {
82 __elog_base WARN "$*"
83 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
84 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
85 echo -e "$@" | while read -r ; do
86 echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" >&2
87 done
88 @@ -321,7 +321,7 @@ ewarn() {
89
90 eerror() {
91 __elog_base ERROR "$*"
92 - [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
93 + [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
94 echo -e "$@" | while read -r ; do
95 echo " $BAD*$NORMAL $RC_INDENTATION$REPLY" >&2
96 done
97 @@ -339,7 +339,7 @@ ebegin() {
98 msg="${msg} ..."
99 fi
100 einfon "${msg}"
101 - [[ ${RC_ENDCOL} == "yes" ]] && echo
102 + [[ ${RC_ENDCOL} == "yes" ]] && echo >&2
103 LAST_E_LEN=$(( 3 + ${#RC_INDENTATION} + ${#msg} ))
104 LAST_E_CMD="ebegin"
105 return 0
106 @@ -359,10 +359,10 @@ __eend() {
107 fi
108
109 if [[ ${RC_ENDCOL} == "yes" ]] ; then
110 - echo -e "${ENDCOL} ${msg}"
111 + echo -e "${ENDCOL} ${msg}" >&2
112 else
113 [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0
114 - printf "%$(( COLS - LAST_E_LEN - 7 ))s%b\n" '' "${msg}"
115 + printf "%$(( COLS - LAST_E_LEN - 7 ))s%b\n" '' "${msg}" >&2
116 fi
117
118 return ${retval}
119 --
120 2.16.2