view bitten/recipe/ctools.py @ 4:196009657e5e

Simplify the recipe commands interface: * The implementation of a command is now located using a pseudo-protocol for namespace URIs. * Commands are simply module-level functions instead of components. * Remove dependency of the recipe/slave code on the Trac component architecture.
author cmlenz
date Mon, 06 Jun 2005 15:54:29 +0000
parents
children 738a0ae251f6
line wrap: on
line source
from popen2 import Popen3

def make(basedir, target='all'):
    """Execute a Makefile target."""
    cmdline = 'make %s' % target
    pipe = Popen3(cmdline, capturestderr=True) # FIXME: Windows compatibility
    while True:
        retval = pipe.poll()
        if retval != -1:
            break
        line = pipe.fromchild.readline()
        if line:
            print '[make] %s' % line.rstrip()
        line = pipe.childerr.readline()
        if line:
            print '[make] %s' % line.rstrip()
    if retval != 0:
        raise BuildError, "Executing distutils failed (%s)" % retval
Copyright (C) 2012-2017 Edgewall Software