rubcat 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/rubcat +2 -1
- data/lib/rubcat/pretty_logcat.rb +46 -17
- data/lib/rubcat/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb580474c09c7997b57faf5a48f3b448aaec89b7
|
4
|
+
data.tar.gz: 903799ea6617203a66ed4721da9fd4d507b742cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca66ce662bc0fcdab90ba9bbec4052a4e93eb507821be5d7be8471f85c86d1c80aafa75aaf1e2711871da1682b6b9971b90ded2d39034ca57208e7c2a4b2be5b
|
7
|
+
data.tar.gz: 74187438056f98a0c88f06decd83a5002bd6db21526882e18db5fe927c7b3c6f579f07ff512b9efb168a66fa7f16b5ff78e4e1ef27efc68be926390c556d9eeb
|
data/exe/rubcat
CHANGED
@@ -18,7 +18,7 @@ opt.on('-l {V,D,I,W,E,F}', '--level={V,D,I,W,E,F}', 'Minimul level to display')
|
|
18
18
|
if %w{V D I W E F}.include? v
|
19
19
|
OPTS[:min_level] = v.to_sym
|
20
20
|
else
|
21
|
-
raise OptionParser::ParseError, "Invalid choice:
|
21
|
+
raise OptionParser::ParseError, "Invalid choice: #{v} (choose from 'V', 'D', 'I', 'W', 'E', 'F')"
|
22
22
|
end
|
23
23
|
}
|
24
24
|
opt.on('-s DEVICE_SERIAL', '--serial=DEVICE_SERIAL') { |v| flags << " -s #{v}" }
|
@@ -42,6 +42,7 @@ begin
|
|
42
42
|
pl.echo line
|
43
43
|
rescue => e
|
44
44
|
puts line
|
45
|
+
puts e if ENV["DEBUG"]
|
45
46
|
end
|
46
47
|
end
|
47
48
|
rescue Errno::EIO
|
data/lib/rubcat/pretty_logcat.rb
CHANGED
@@ -3,6 +3,7 @@ require 'io/console'
|
|
3
3
|
module Rubcat
|
4
4
|
class PrettyLogcat
|
5
5
|
attr_reader :opt, :last_tag
|
6
|
+
LOG_LEVELS = [:V, :D, :I, :W, :E, :F]
|
6
7
|
|
7
8
|
def initialize(options)
|
8
9
|
@opt = {
|
@@ -15,7 +16,7 @@ module Rubcat
|
|
15
16
|
def parse_message(message)
|
16
17
|
m = message.match(/^([VDIWEFS])\/(.*)\((\s*[0-9]+)\):\s(.*)$/)
|
17
18
|
{
|
18
|
-
type: m[1],
|
19
|
+
type: m[1].to_sym,
|
19
20
|
tag: m[2].strip,
|
20
21
|
pid: m[3],
|
21
22
|
message: m[4]
|
@@ -24,13 +25,13 @@ module Rubcat
|
|
24
25
|
|
25
26
|
def colorize_type(type)
|
26
27
|
case type
|
27
|
-
when
|
28
|
+
when :V
|
28
29
|
" #{type} ".bold.bg_gray.black
|
29
|
-
when
|
30
|
+
when :D
|
30
31
|
" #{type} ".bold.bg_blue
|
31
|
-
when
|
32
|
+
when :I
|
32
33
|
" #{type} ".bold.bg_green
|
33
|
-
when
|
34
|
+
when :W
|
34
35
|
" #{type} ".bold.bg_brown
|
35
36
|
else
|
36
37
|
" #{type} ".bold.bg_red
|
@@ -39,31 +40,59 @@ module Rubcat
|
|
39
40
|
|
40
41
|
KNOWN_TAGS = %w{dalvikvm art dex2oat}
|
41
42
|
|
42
|
-
def format_tag(tag)
|
43
|
-
|
44
|
-
@last_tag
|
45
|
-
|
46
|
-
|
47
|
-
tag
|
43
|
+
def format_tag(type, tag)
|
44
|
+
if type == :normal
|
45
|
+
unless tag == @last_tag
|
46
|
+
@last_tag = tag
|
47
|
+
puts if @opt[:split_tags]
|
48
|
+
if KNOWN_TAGS.include? tag
|
49
|
+
tag.trim_and_rjust(@opt[:tag_length]).bold.black.bg_gray
|
50
|
+
elsif tag == "ActivityManager"
|
51
|
+
tag.trim_and_rjust(@opt[:tag_length]).bold
|
52
|
+
else
|
53
|
+
tag.trim_and_rjust(@opt[:tag_length]).randomize_color.bold
|
54
|
+
end
|
48
55
|
else
|
49
|
-
|
56
|
+
" " * @opt[:tag_length]
|
50
57
|
end
|
51
|
-
|
52
|
-
|
58
|
+
elsif type == :activity_kill
|
59
|
+
tag.trim_and_rjust(@opt[:tag_length]).bold.bg_red
|
60
|
+
elsif type == :activity_start
|
61
|
+
tag.trim_and_rjust(@opt[:tag_length]).bold.bg_green
|
53
62
|
end
|
54
63
|
end
|
55
64
|
|
65
|
+
|
56
66
|
def wrap_message(mes, type)
|
57
67
|
mes.scan(/.{1,#{IO.console.winsize[1] - @opt[:tag_length] - 5}}/).join("\n#{' ' * @opt[:tag_length]} #{type} ")
|
58
68
|
end
|
59
69
|
|
60
|
-
def
|
70
|
+
def pretty_print(mes)
|
71
|
+
return if (LOG_LEVELS.find_index @opt[:min_level]) > (LOG_LEVELS.find_index mes[:type])
|
72
|
+
|
61
73
|
type = colorize_type mes[:type]
|
62
|
-
|
74
|
+
|
75
|
+
if mes[:tag] == "ActivityManager"
|
76
|
+
if mes[:message] =~ /^Killing/
|
77
|
+
m = mes[:message].match(/^Killing ([0-9]+):([^\s\/]+)/)
|
78
|
+
puts
|
79
|
+
puts "#{format_tag :activity_kill, "Killing process"} #{wrap_message(m[2] + " (pid " + m[1], "")})"
|
80
|
+
puts
|
81
|
+
elsif mes[:message] =~ /^Start proc/
|
82
|
+
m = mes[:message].match(/^Start proc (.*)$/)
|
83
|
+
puts
|
84
|
+
puts "#{format_tag :activity_start, "Start process"} #{wrap_message(m[1], "")}"
|
85
|
+
puts
|
86
|
+
else
|
87
|
+
puts "#{format_tag :normal, mes[:tag]} #{type} #{wrap_message mes[:message], type}"
|
88
|
+
end
|
89
|
+
else
|
90
|
+
puts "#{format_tag :normal, mes[:tag]} #{type} #{wrap_message mes[:message], type}"
|
91
|
+
end
|
63
92
|
end
|
64
93
|
|
65
94
|
def echo(mes)
|
66
|
-
|
95
|
+
pretty_print parse_message mes
|
67
96
|
end
|
68
97
|
end
|
69
98
|
end
|
data/lib/rubcat/version.rb
CHANGED