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
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)