def run(args, **kwargs):
    """
    Call to Popen, returns (errcode, stdout, stderr)
    """
    print("run:", args)
    p = subprocess.Popen(
        args,
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
        universal_newlines=True,
        cwd=kwargs.get('cwd', os.getcwd()))
    print("P==", p.__dict__)
    (stdout, stderr) = p.communicate()

    return (p.returncode, stdout, stderr)