Skip to content

Instantly share code, notes, and snippets.

@proger
Created February 11, 2013 15:47
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save proger/4755242 to your computer and use it in GitHub Desktop.
Save proger/4755242 to your computer and use it in GitHub Desktop.
run any process with a badge!
#!/usr/bin/env python
import sys
sys.path.insert(0, '/System/Library/PrivateFrameworks/LLDB.framework/Resources/Python')
import lldb
dbg = lldb.SBDebugger.Create()
dbg.SetAsync(False)
target = dbg.CreateTarget(None)
ci = dbg.GetCommandInterpreter()
cro = lldb.SBCommandReturnObject()
def do(pid, badge_title):
listener = lldb.SBListener()
errp = lldb.SBError()
process = target.AttachToProcessWithID(listener, int(pid), errp)
print 'attach:', errp
ci.HandleCommand('po [[NSApp dockTile] setBadgeLabel:@"{}"]'.format(badge_title.replace('"', '''\"''')), cro)
print 'command:', cro
return process
if __name__ == '__main__':
pid, badge_title = sys.argv[1:3]
do(int(pid), badge_title)
sudo dtrace -w -q -n 'syscall::*fork*:return /execname=="launchd"/ { trace(arg0); exit(0) }' \
-c "sudo -u $USER open -na /Applications/Emacs.app dev/hs/aeson-0.6.1.0" \
| xargs -n1 -t -J % ~/badge.py % "aeson"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment