diff options
Diffstat (limited to 'logcat.py')
| -rwxr-xr-x | logcat.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/logcat.py b/logcat.py new file mode 100755 index 0000000..8a12490 --- /dev/null +++ b/logcat.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# **************************************************************************** # +# # +# ::: :::::::: # +# logcat.py :+: :+: :+: # +# +:+ +:+ +:+ # +# By: juloo <juloo@student.42.fr> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2015/08/04 18:31:55 by juloo #+# #+# # +# Updated: 2015/08/04 20:10:14 by juloo ### ########.fr # +# # +# **************************************************************************** # + +from subprocess import Popen, PIPE +from sys import argv, stdout, exit +import re + +if len(argv) <= 1: + print("\033[31mNot enougth argument\033[39m") + print("Usage: %s <app name (package name)>" % argv[0]) + exit() + +prefixReg = re.compile('[^:]+\(\s*([0-9]+)\):.*') +startAppReg = re.compile('[^:]+: Start proc ([^ ]+)[^:]+:\s*pid\s*=\s*([0-9]+)\s*.*') + +app_name = argv[1] +pids = [] + +Popen("adb logcat -c".split()).wait() + +cmd = Popen("adb shell ps".split(), stdout=PIPE) +for l in cmd.stdout: + if app_name in l: + pids.append(int(l.split()[1])) + +if len(pids) <= 0: + stdout.write("\033[91mApp not started. Waiting") +else: + stdout.write("\033[32mApplication pid:") + for p in pids: + stdout.write(" %d" % p) +stdout.write("\033[39m\n") +stdout.flush() + +cmd = Popen("adb logcat".split(), stdout=PIPE) +for l in iter(cmd.stdout.readline, ""): + m = startAppReg.match(l) + if m != None and app_name in m.group(1): + pid = int(m.group(2)) + if pid not in pids: + pids.append(pid) + stdout.write("\033[32mApplication started. pid:") + for p in pids: + stdout.write(" %d" % p) + stdout.write("\033[39m\n") + stdout.flush() + m = prefixReg.match(l) + if m != None and int(m.group(1)) in pids: + stdout.write(l) + stdout.flush() |
