def run_with_logging()

in spotify_tensorflow/luigi/utils.py [0:0]


def run_with_logging(cmd, logger):
    """
    Run cmd and wait for it to finish. While cmd is running, we read it's
    output and print it to a logger.
    """
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    output_lines = []
    while True:
        line = process.stdout.readline()
        if not line:
            break
        line = line.decode("utf-8")
        output_lines += [line]
        logger.info(line.rstrip("\n"))
    exit_code = process.wait()
    if exit_code:
        output = "".join(output_lines)
        raise subprocess.CalledProcessError(exit_code, cmd, output=output)
    return exit_code