pyobjc / setup-lib / pyobjc_setup_utils.py

import sys
from subprocess import Popen, PIPE
import select
from distutils.errors import DistutilsExecError
def runtasks(taskName, *commands, **kw):
    print "Performing task: %s" % (taskName,)
    for cmd in commands:
        print ' '.join(cmd)
        process = Popen(cmd, stdout=PIPE, stderr=PIPE, **kw)
        while True:
            try:
                stdout, stderr = process.communicate()
            except select.error:
                continue
            else:
                break
        res = process.wait()
        if res:
            for err in stderr:
                sys.stderr.write(err)
            raise DistutilsExecError("Task %r failed [%d]" % (taskName, res))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.