linkmap 0.0.0 → 0.0.1
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/lib/linkmap.rb +82 -11
- 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: d39688a87ec74b520430b6bf205c24fa557f2155
|
4
|
+
data.tar.gz: b5ec195a7d09daf3c2b76f5d24ad9ecb3883146b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71bd7a931d58a39c06b605706252c54c99bbcdd5e5456fdde68489358a27648ee813e9a1c01c0af762a9c014f92c78c4e44e2c55ae2bfea938e15fbae7cef766
|
7
|
+
data.tar.gz: 7dae4e4eb92dd87250bf0b704ab3c03cd69f5ce12f4ddc472d8985763c0235cebc4702f6d041cf7f3397d44b19a5d8b3cf1bd919262aa1b4dd993cd4ae033d7a
|
data/lib/linkmap.rb
CHANGED
@@ -31,6 +31,7 @@ module LinkMap
|
|
31
31
|
@reachSections = false
|
32
32
|
|
33
33
|
@fileMap = Hash.new
|
34
|
+
@moduleMap = Hash.new
|
34
35
|
end
|
35
36
|
|
36
37
|
def run(argv)
|
@@ -79,40 +80,94 @@ module LinkMap
|
|
79
80
|
end
|
80
81
|
|
81
82
|
fileArray = @fileMap.values
|
82
|
-
fileArray
|
83
|
-
|
83
|
+
fileArray.each do |linkFile|
|
84
|
+
array = linkFile.name.split("/")
|
85
|
+
line = array[array.size-1]
|
86
|
+
if index=line.index("(") != nil
|
87
|
+
index = line.index("(")
|
88
|
+
moduleName = line[0, index]
|
89
|
+
elsif index=line.index("tbd") != nil
|
90
|
+
moduleName = "system"
|
91
|
+
else
|
92
|
+
moduleName = "other"
|
93
|
+
end
|
94
|
+
# puts moduleName
|
95
|
+
if !@moduleMap.has_key?(moduleName)
|
96
|
+
fileModule = FileModule.new()
|
97
|
+
fileModule.name = moduleName
|
98
|
+
@moduleMap.store(moduleName, fileModule)
|
99
|
+
else
|
100
|
+
fileModule = @moduleMap.fetch(moduleName)
|
101
|
+
end
|
102
|
+
fileModule.size = fileModule.size.to_i+linkFile.size.to_i
|
103
|
+
fileModule.moduleFiles.push(linkFile)
|
104
|
+
end
|
105
|
+
|
106
|
+
#创建输出文件
|
84
107
|
array = filename.split("/")
|
85
108
|
destFileName = array[array.size-1]
|
86
109
|
destFileName = "analize_#{destFileName}"
|
87
110
|
array.delete_at(array.size-1)
|
88
111
|
array.push(destFileName)
|
89
112
|
destFileName = array.join("/")
|
90
|
-
|
91
113
|
if File::file?(destFileName)
|
92
114
|
File::delete(destFileName)
|
93
115
|
end
|
94
116
|
destFile = File.new(destFileName, "w");
|
95
117
|
|
96
|
-
|
118
|
+
#输出modules
|
119
|
+
moduleArray = @moduleMap.values
|
120
|
+
moduleArray = moduleArray.sort{|x,y| y.size <=> x.size}
|
121
|
+
moduleArray.delete(@moduleMap.fetch("system"))
|
122
|
+
moduleArray.insert(0, @moduleMap.fetch("system"))
|
123
|
+
moduleArray.delete(@moduleMap.fetch("other"))
|
124
|
+
moduleArray.push(@moduleMap.fetch("other"))
|
125
|
+
|
97
126
|
totalSize = 0
|
98
|
-
|
99
|
-
|
100
|
-
|
127
|
+
moduleArray.each do |fileModule|
|
128
|
+
totalSize += fileModule.size
|
129
|
+
end
|
130
|
+
destFile.puts "总体积: #{getFileSize totalSize}"
|
131
|
+
|
132
|
+
moduleArray.each do |fileModule|
|
133
|
+
line = fileModule.name
|
101
134
|
line += "\t"
|
102
|
-
line +=
|
103
|
-
# puts "#{line}"
|
135
|
+
line += getFileSize fileModule.size
|
104
136
|
destFile.puts line
|
105
|
-
totalSize += linkFile.size
|
106
137
|
end
|
107
|
-
destFile.puts "
|
138
|
+
destFile.puts "\n"
|
108
139
|
|
140
|
+
#输出各个module
|
141
|
+
moduleArray.each do |fileModule|
|
142
|
+
fileArray = fileModule.moduleFiles.sort{|x,y| y.size <=> x.size}
|
143
|
+
line = "==== #{fileModule.name} ==="
|
144
|
+
destFile.puts line
|
145
|
+
fileArray.each do |linkFile|
|
146
|
+
array = linkFile.name.split("/")
|
147
|
+
line = array[array.size-1]
|
148
|
+
line += "\t"
|
149
|
+
line += "#{getFileSize linkFile.size}"
|
150
|
+
destFile.puts line
|
151
|
+
totalSize += linkFile.size
|
152
|
+
end
|
153
|
+
destFile.puts ""
|
154
|
+
end
|
109
155
|
destFile.close
|
156
|
+
|
110
157
|
puts("success!")
|
111
158
|
puts("result saved in:#{destFileName}")
|
112
159
|
else
|
113
160
|
puts "\t#{argv[1]} is not a file name"
|
114
161
|
end
|
115
162
|
end
|
163
|
+
|
164
|
+
def getFileSize(size)
|
165
|
+
if size < 1024*1024
|
166
|
+
"#{size/1024.0}K"
|
167
|
+
else
|
168
|
+
"#{size/(1024.0*1024.0)}M"
|
169
|
+
end
|
170
|
+
end
|
116
171
|
|
117
172
|
end
|
118
173
|
|
@@ -126,6 +181,22 @@ module LinkMap
|
|
126
181
|
|
127
182
|
end
|
128
183
|
|
184
|
+
class FileModule
|
185
|
+
|
186
|
+
attr_accessor :name
|
187
|
+
attr_accessor :size
|
188
|
+
attr_accessor :moduleFiles
|
189
|
+
|
190
|
+
@name
|
191
|
+
@size
|
192
|
+
@moduleFiles
|
193
|
+
|
194
|
+
def initialize()
|
195
|
+
@moduleFiles = Array.new
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
199
|
+
|
129
200
|
# argv = ["a", "/Users/wangbin/Desktop/My/linkmap/babyShow-LinkMap-normal-armv7.txt"]
|
130
201
|
# argv = ["a", "b"]
|
131
202
|
# argv = []
|