abouttreesummaryrefslogcommitdiff
path: root/logcat.py
diff options
context:
space:
mode:
Diffstat (limited to 'logcat.py')
-rwxr-xr-xlogcat.py60
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()