itools 1.0.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +4 -4
- data/lib/itools/get_size.rb +2 -2
- data/lib/itools/link_map.rb +12 -4
- data/lib/itools/version.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62210651cf76afa15688f068dc392d58630ddd539b79695b7fe05d8064425083
|
4
|
+
data.tar.gz: de194c6c1816aabc9a968442afa0160d7cdc1655ac9323f28868a1a172070da5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0e3411284537b74403a0569907e786bbea7c00210f02b8941c3dcfabb32a1c5ae3c527277618080d16770cb4a3365d8346bb88413c5474993419dc360823c8d
|
7
|
+
data.tar.gz: be869cf345ad952e4b2edbb6001f33b717bb07f80a8708d03d0241b25cc0338a7f66b9b2f8e954d36b795be56dd5cc9eeb73573697f43ea4b6beea6106ae810f
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -19,7 +19,7 @@ SYNOPSIS
|
|
19
19
|
itools [global options] command [command options] [arguments...]
|
20
20
|
|
21
21
|
VERSION
|
22
|
-
0.
|
22
|
+
1.0.0
|
23
23
|
|
24
24
|
GLOBAL OPTIONS
|
25
25
|
--help - Show this message
|
@@ -40,7 +40,7 @@ COMMANDS
|
|
40
40
|
### 功能1:解析LinkMap
|
41
41
|
命令:
|
42
42
|
```shell
|
43
|
-
itools parse LinkMapDemo-LinkMap-normal-arm64.txt
|
43
|
+
itools parse LinkMapDemo-LinkMap-normal-arm64.txt (分析文件夹)
|
44
44
|
# or
|
45
45
|
itools parse /user/Desk/LinkMapDemo-LinkMap-normal-arm64.txt
|
46
46
|
```
|
@@ -56,8 +56,8 @@ Foundation.tbd 24B
|
|
56
56
|
UIKit.tbd 24B
|
57
57
|
Total Size:10.07KB
|
58
58
|
```
|
59
|
-
For more information, see:[https://www.cnblogs.com/zhanggui/p/9991455.html](https://www.cnblogs.com/zhanggui/p/9991455.html)
|
60
|
-
|
59
|
+
For more information, see:[https://www.cnblogs.com/zhanggui/p/9991455.html](https://www.cnblogs.com/zhanggui/p/9991455.html)
|
60
|
+
也可以根据linkmap按照folder解析,即传入第二个参数为分析的引用库目录,例如想查看AFNetWorking中各个文件夹(内容)所占二进制的大小。
|
61
61
|
### 功能2:字符串查找
|
62
62
|
命令
|
63
63
|
```ruby
|
data/lib/itools/get_size.rb
CHANGED
@@ -58,9 +58,9 @@ module Itools
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
if file_exts.size == 0
|
61
|
-
puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)}\033[0m"
|
61
|
+
puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)}(#{total_size})\033[0m"
|
62
62
|
else
|
63
|
-
puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)};找到后缀为(#{file_exts_string})的文件#{file_count}个,共#{get_show_size(sum)}.\033[0m"
|
63
|
+
puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)}(#{total_size});找到后缀为(#{file_exts_string})的文件#{file_count}个,共#{get_show_size(sum)}(#{total_size}).\033[0m"
|
64
64
|
end
|
65
65
|
|
66
66
|
# puts `du -b #{folder} | awk '{print $1}'`.to_i
|
data/lib/itools/link_map.rb
CHANGED
@@ -138,6 +138,11 @@ module Itools
|
|
138
138
|
handle_method_name = "handle_sections"
|
139
139
|
puts "处理Sections..."
|
140
140
|
elsif line.include?("Symbols:") #symbols:和Dead Stripped Symbols处理一样
|
141
|
+
# 这里不处理Dead Stripped Symbols
|
142
|
+
if line.delete('#').strip.include?("Dead Stripped Symbols")
|
143
|
+
puts "不处理处理#{line.delete('#').strip}..."
|
144
|
+
break
|
145
|
+
end
|
141
146
|
puts "处理#{line.delete('#').strip}..."
|
142
147
|
handle_method_name = "handle_symbols"
|
143
148
|
end
|
@@ -227,7 +232,7 @@ module Itools
|
|
227
232
|
# 打印结果
|
228
233
|
sizeResultArr.each do |obj|
|
229
234
|
puts "#{obj.file_name} " + SizeResult.handleSize(obj.size)
|
230
|
-
save_file.puts("#{obj.file_name} #{SizeResult.handleSize(obj.size)}")
|
235
|
+
save_file.puts("#{obj.file_name} #{SizeResult.handleSize(obj.size)}(#{obj.size})")
|
231
236
|
end
|
232
237
|
save_file.puts("总大小为:#{SizeResult.handleSize(total_size)}")
|
233
238
|
save_file.close
|
@@ -301,8 +306,10 @@ module Itools
|
|
301
306
|
File.delete(save_file_path)
|
302
307
|
end
|
303
308
|
save_file = File.new(save_file_path,"w+")
|
309
|
+
o_index = 2
|
304
310
|
size_results.each do |o|
|
305
|
-
|
311
|
+
result_str = "#{' ' * o.space_count}├── #{o.folder_name.split('/').last} #{SizeResult.handleSize(o.size)}(#{o.size})"
|
312
|
+
save_file.puts(result_str)
|
306
313
|
end
|
307
314
|
save_file.close
|
308
315
|
puts "分析结果已经保存为文件,位置为:\n\033[32m#{save_file_path}\033[0m"
|
@@ -313,7 +320,8 @@ module Itools
|
|
313
320
|
space_index = space_index + 2
|
314
321
|
file_name_arr = [] #盛放计算过的类
|
315
322
|
Find.find(file_path) do |file|
|
316
|
-
|
323
|
+
# 不包含图片
|
324
|
+
if File.file?(file) && !(File.extname(file) =~ /(png|gif|jpg|bmp|jpeg)/)
|
317
325
|
file_name = File.basename(file,".*")
|
318
326
|
if !file_name_arr.include?(file_name) && sort_by_obj_files_map[file_name] #没有已经计算过
|
319
327
|
s_result.size = s_result.size + sort_by_obj_files_map[file_name][0].o_size
|
@@ -350,7 +358,7 @@ module Itools
|
|
350
358
|
def self.getSaveFileName(path_para)
|
351
359
|
path = Pathname.new(path_para)
|
352
360
|
# 要保存的地址
|
353
|
-
save_file_path = path.dirname.to_s + "/" + "parse_" + path.basename.to_s + "_result.txt"
|
361
|
+
save_file_path = path.dirname.to_s + "/" + "parse_" + path.basename.to_s + "_result(#{Time.new.strftime("%Y%m%d%H%M%S")}).txt"
|
354
362
|
return save_file_path
|
355
363
|
end
|
356
364
|
end
|
data/lib/itools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zhanggui
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|