# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: lib/output/parse-config # Copyright (C) 2006 - 2008 The OpenSDE Project # Copyright (C) 2004 - 2006 The T2 SDE Project # Copyright (C) 1998 - 2003 Clifford Wolf # # More information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- . lib/output/terminal output_proc() { columns=$1 plugins= for x in $( ls lib/output ); do if [ -f lib/output/$x/functions.sh ]; then eval "y=\$SDECFG_OUTPUT_$( echo $x | tr a-z A-Z )" if [ "$y" = 1 ]; then . lib/output/$x/functions.sh plugins="$plugins $x" fi fi done while read -r type data; do # always output to the terminal for plugin in terminal $plugins; do eval "echo_${type}_${plugin} $data" done done exit 0 } if [ -z "$SDE_OUPUT_PLUGIN_PROC_ACTIVE" ]; then export SDE_OUPUT_PLUGIN_PROC_ACTIVE=1 # since the output plugin's stdin is the pipe, we help it out # with the columns for pretty printing output [ "${columns:=$COLUMNS}" ] || columns="$( stty size 2> /dev/null | cut -d' ' -f2 )" [ "$columns" ] || columns=80 exec 199> >( output_proc $columns ) fi echo_sched() { local request="$1" tag ; shift local nl=$'\n' tc="'" # only for Build-Target, we want to duplication # the terminal output, on the log file at fd/201 [ ! -e /proc/self/fd/201 ] || echo_${request}_terminal "$@" >&201 # add each argument, seperated in quotes, after newlines and # tick quotes got escaped for tag; do tag=${tag//\\\\/\\\\} tag=${tag//$tc/\\$tc} tag=${tag//$nl/\\n} request="$request \$'$tag'" done echo "$request" >&199 } echo_header() { echo_sched header "$@" ; } echo_status() { echo_sched status "$@" ; } echo_warning() { echo_sched warning "$@" ; } echo_error() { echo_sched error "$@" ; } echo_pkg_deny() { echo_sched pkg_deny "$@" ; } echo_pkg_start() { echo_sched pkg_start "$@" ; } echo_pkg_finish() { echo_sched pkg_finish "$@" ; } echo_pkg_abort() { echo_sched pkg_abort "$@" ; } echo_errorquote() { echo_sched errorquote "$@" ; }