Let's get this straight: VIRTUALX_COMMAND="foo" virtualmake --bar --baz
is just ugly. Instead, introduce a function which can be used as: virtualx foo --bar -baz --- gx86/eclass/virtualx.eclass | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/gx86/eclass/virtualx.eclass b/gx86/eclass/virtualx.eclass index 0621b18..47116fd 100644 --- a/gx86/eclass/virtualx.eclass +++ b/gx86/eclass/virtualx.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/virtualx.eclass,v 1.43 2012/10/03 22:47:12 chithanh Exp $ @@ -69,11 +69,12 @@ case ${VIRTUALX_REQUIRED} in ;; esac -# @FUNCTION: virtualmake +# @FUNCTION: virtualx +# @USAGE: <argv>... # @DESCRIPTION: -# Function which attach to running X session or start new Xvfb session -# where the VIRTUALX_COMMAND variable content gets executed. -virtualmake() { +# Attach to a running X session or start a new Xvfb session, then run +# the command passed as arguments. +virtualx() { debug-print-function ${FUNCNAME} "$@" local i=0 @@ -83,14 +84,6 @@ virtualmake() { local XHOST=$(type -p xhost) local xvfbargs="-screen 0 1280x1024x24" - # backcompat for maketype - if [[ -n ${maketype} ]]; then - ewarn "QA: ebuild is exporting \$maketype=${maketype}" - ewarn "QA: Ebuild should be migrated to use VIRTUALX_COMMAND=${maketype} instead." - ewarn "QA: Setting VIRTUALX_COMMAND to \$maketype conveniently for now." - VIRTUALX_COMMAND=${maketype} - fi - # If $DISPLAY is not set, or xhost cannot connect to an X # display, then do the Xvfb hack. if [[ -n ${XVFB} && -n ${XHOST} ]] && \ @@ -145,10 +138,10 @@ virtualmake() { # to kill Xvfb debug-print "${FUNCNAME}: ${VIRTUALX_COMMAND} \"$@\"" if has "${EAPI}" 2 3; then - ${VIRTUALX_COMMAND} "$@" + "$@" retval=$? else - nonfatal ${VIRTUALX_COMMAND} "$@" + nonfatal "$@" retval=$? fi @@ -158,16 +151,34 @@ virtualmake() { debug-print "${FUNCNAME}: attaching to running X display" # Normal make if we can connect to an X display debug-print "${FUNCNAME}: ${VIRTUALX_COMMAND} \"$@\"" - ${VIRTUALX_COMMAND} "$@" + "$@" retval=$? fi # die if our command failed - [[ ${retval} -ne 0 ]] && die "${FUNCNAME}: the ${VIRTUALX_COMMAND} failed." + [[ ${retval} -ne 0 ]] && die "${FUNCNAME}: ${1} failed." return 0 # always return 0, it can be altered by failed kill for Xvfb } +# @FUNCTION: virtualmake +# @DESCRIPTION: +# Function which attach to running X session or start new Xvfb session +# where the VIRTUALX_COMMAND variable content gets executed. +virtualmake() { + debug-print-function ${FUNCNAME} "$@" + + # backcompat for maketype + if [[ -n ${maketype} ]]; then + ewarn "QA: ebuild is exporting \$maketype=${maketype}" + ewarn "QA: Ebuild should be migrated to use VIRTUALX_COMMAND=${maketype} instead." + ewarn "QA: Setting VIRTUALX_COMMAND to \$maketype conveniently for now." + VIRTUALX_COMMAND=${maketype} + fi + + virtualx ${VIRTUALX_COMMAND} "$@" +} + # @FUNCTION: Xmake # @DESCRIPTION: # Same as "make", but set up the Xvfb hack if needed. -- 1.8.1.2