commit:     ab43c1944f0cb6bf43d5b40cceb2e8186645d347
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 26 15:12:08 2014 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Oct 27 19:21:28 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=ab43c194

Introduce eqalog and eqawarnlog functions.

These functions are to be used for creating a log of QA violations in a
machine-readable format.

Stored in ${T]/qa.log, the log consists of one entry per line in the
following format: violation-tag data

For example:
deprecated-directory /usr/man
deprecated-directory /usr/info
world-writable /var/db/foo/bar

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
Acked-by: Alexander Berntsen <bernalex <AT> gentoo.org>

---
 bin/isolated-functions.sh | 23 +++++++++++++++++++++++
 bin/save-ebuild-env.sh    |  1 +
 2 files changed, 24 insertions(+)

diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index a22af57..4992d77 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -256,6 +256,29 @@ __elog_base() {
        return 0
 }
 
+__eqalog() {
+       local tag=$1 x
+       shift
+       for x in "$@" ; do
+               echo "${tag}" "${x}"| (
+                       escape=""
+                       while read -r ; do
+                               echo -n "${escape}${REPLY}"
+                               escape="\\n"
+                       done
+                       echo
+               ) >> "${T}"/qa.log
+       done
+}
+
+__eqawarnlog() {
+       __eqalog "$@"
+       shift
+       for x in "$@" ; do
+               eqawarn "  ${x}"
+       done
+}
+
 eqawarn() {
        __elog_base QA "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo

diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 775c02c..dd233a9 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -76,6 +76,7 @@ __save_ebuild_env() {
                __ebuild_arg_to_phase __ebuild_phase_funcs default \
                __unpack_tar __unset_colors \
                __source_env_files __try_source \
+               __eqalog __eqawarnlog \
                ${QA_INTERCEPTORS}
 
        ___eapi_has_usex && unset -f usex

Reply via email to