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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c9dd7e63d6c4e7af801c7e2a26d589202bbfb27ed9c956510e8caa501d26d06
4
- data.tar.gz: 571d820bf05547b94a6513cb0f44a4f29afcf52f4c93697cf037768d57b79125
3
+ metadata.gz: 62210651cf76afa15688f068dc392d58630ddd539b79695b7fe05d8064425083
4
+ data.tar.gz: de194c6c1816aabc9a968442afa0160d7cdc1655ac9323f28868a1a172070da5
5
5
  SHA512:
6
- metadata.gz: 1b1ec3f88b6758202add82974c9bd654dd0020db2b4b431153184ec974c5ffac0e25c1ab0fda07a73b87964f4e0abd3ec9661cf6b524932215d0087e916d6ba7
7
- data.tar.gz: d5f4bd9ae7ae39ca4c1b17ee54b4ae2f719f39aa6870f00435548cd7441c47ae58db867aead74cf65aba6447c356ff303858ace6b9f365ab2f5f5f02c4977222
6
+ metadata.gz: e0e3411284537b74403a0569907e786bbea7c00210f02b8941c3dcfabb32a1c5ae3c527277618080d16770cb4a3365d8346bb88413c5474993419dc360823c8d
7
+ data.tar.gz: be869cf345ad952e4b2edbb6001f33b717bb07f80a8708d03d0241b25cc0338a7f66b9b2f8e954d36b795be56dd5cc9eeb73573697f43ea4b6beea6106ae810f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- itools (1.0.0)
4
+ itools (1.1.1)
5
5
  bundler (~> 1.17)
6
6
  git (~> 1.5)
7
7
  gli (~> 2.17)
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.4.9
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
@@ -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
@@ -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
- save_file.puts("#{' ' * o.space_count}|- #{o.folder_name.split('/').last} #{SizeResult.handleSize(o.size)}")
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
- if File.file?(file)
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
@@ -1,3 +1,4 @@
1
1
  module Itools
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.1"
3
+
3
4
  end
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.0.0
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-05 00:00:00.000000000 Z
11
+ date: 2019-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler