rubcat 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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