def _run(args, stdin):
    # known errors:
    # We failed to notify after succesfully registering
    # fix Failed to register with
    # ----
    # 1) different versions produce diffrent errors
    # 2) pirate versions contains additional errors
    # repeat few until 0 exit status
    i = 0
    while i < 50:
        returncode, _, stderr = subopen(args, stdin=stdin)
        if returncode == 0:
            return
        if not (stderr.find("Failed to register with") >=
                0 or stderr.find("failed to notify") >= 0):
            return
        i += 1
Example #2
0
def osascript(applescript, flags=None):
    """osascript applescript code or file
    """
    args = ["osascript"]
    if applescript and isinstance(applescript, list):
        applescript = "\n".join(applescript)
    temp = programfile = None
    if applescript and os.path.exists(applescript):
        programfile = applescript
    else:
        temp = programfile = tempfile()
        write(temp, applescript)
    try:
        if flags:
            args += ["-s", flags]
        if programfile:
            args.append(programfile)
        returncode, stdout, stderr = subopen(args)
        return (returncode, stdout, stderr)
    finally:
        rm(temp)
def _open():
    returncode, _, _ = subopen(["killall", "-s", "Growl"])
    if returncode != 0:
        returncode, _, stderr = subopen(["open", "-a", "Growl 2"])
        if returncode != 0:
            raise OSError(stderr)