itools 0.5.2 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 788ebf01252a934f4e4705dd9f9103819934798ab91aef3e6aa32728ecaafd45
4
- data.tar.gz: cefd7dde5ac84dd3a9afe5a4cf80541f9f0152680e41ce5bc8649207b4027c4d
3
+ metadata.gz: d2f0c8c5a5b8189fd5561b57ee9fd5ba7b90a8e899cc51569b215409959a0760
4
+ data.tar.gz: 77127100e3fc43d53d05bf4da8fac3d30c5604b6535477ba0be11ced2fe007b0
5
5
  SHA512:
6
- metadata.gz: 8c70960e3f4247c406f7742f796575fa73a56d6a130c9747baa6eefc93f13cdff2c3e11cfcea443cc07d2639041dcff75ec9165fd291fc198169951155895a4a
7
- data.tar.gz: 69f57dfdaa3459a5991c657a215bf78c060fba821a009c1072452fab55938839f0f137da29a9895b95a2bb9ede4fad81135d67d754c4e363787b0c4c2b25a6c7
6
+ metadata.gz: e321a1cdb2b2fe8c6da17853a45bd94d3edb5e2781e961c4eb4be46a51304e48a2ec5f31ed71b29a8183d3d06d35d04c1610cb2352eb64d297d5b34d4709cdb9
7
+ data.tar.gz: 8059a806fd284eb1c29cc17d5eb54a657a9303524b11658a3cccd40e29dc2e9746faac936d2b7749192b77433b9ca12fe17dac5efc054f02b542e3a1b7d0ab5c
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.3.7
1
+ ruby-2.4.0
data/Gemfile.lock CHANGED
@@ -1,28 +1,30 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- itools (0.5.2)
5
- bundler (~> 1.17)
4
+ itools (1.1.5)
5
+ bundler (>= 2.2.33)
6
6
  git (~> 1.5)
7
7
  gli (~> 2.17)
8
- rake (~> 10.0)
8
+ rake (>= 12.3.3)
9
9
  spreadsheet (~> 1.1, >= 1.1.8)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- git (1.5.0)
15
- gli (2.18.0)
16
- rake (10.5.0)
17
- ruby-ole (1.2.12.1)
18
- spreadsheet (1.1.8)
19
- ruby-ole (>= 1.0)
14
+ git (1.10.1)
15
+ rchardet (~> 1.8)
16
+ gli (2.20.1)
17
+ rake (13.0.6)
18
+ rchardet (1.8.0)
19
+ ruby-ole (1.2.12.2)
20
+ spreadsheet (1.3.0)
21
+ ruby-ole
20
22
 
21
23
  PLATFORMS
22
- ruby
24
+ x86_64-darwin-20
23
25
 
24
26
  DEPENDENCIES
25
27
  itools!
26
28
 
27
29
  BUNDLED WITH
28
- 1.17.1
30
+ 2.3.4
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
data/bin/itools CHANGED
@@ -79,4 +79,12 @@ command :pre_commit do |c|
79
79
  Itools::GitSets.commit_msg_init(args)
80
80
  end
81
81
  end
82
+ #本地commit规范化
83
+ desc "通过执行该命令,可以将podfile.lock中所有的依赖平铺至Podifle中"
84
+ arg 'podfile.lock'
85
+ command :podfile_tiled do |c|
86
+ c.action do |global_options,options, args|
87
+ Itools::PodfileTiled.podfile_tiled(args)
88
+ end
89
+ end
82
90
  exit run(ARGV)
data/itools.gemspec CHANGED
@@ -35,8 +35,8 @@ Gem::Specification.new do |spec|
35
35
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
36
36
  spec.require_paths = ["lib"]
37
37
 
38
- spec.add_runtime_dependency "bundler", "~> 1.17"
39
- spec.add_runtime_dependency "rake", "~> 10.0"
38
+ spec.add_runtime_dependency "bundler", ">= 2.2.33"
39
+ spec.add_runtime_dependency "rake", ">= 12.3.3"
40
40
  spec.add_runtime_dependency "gli", "~> 2.17"
41
41
  spec.add_runtime_dependency "spreadsheet", '~> 1.1', '>= 1.1.8'
42
42
  spec.add_runtime_dependency 'git', '~> 1.5'
@@ -64,6 +64,7 @@ module Itools
64
64
  sheet1.row(0)[0] = "序号"
65
65
  sheet1.row(0)[1] = "文件名"
66
66
  sheet1.row(0)[2] = "文件路径"
67
+ sheet1.row(0)[3] = "文件占用内存大小"
67
68
  total_size = 0
68
69
  @classes.each_with_index{|r_item,f_index|
69
70
  # if !r_item.fr_name.include?("+")
@@ -81,11 +81,13 @@ module Itools
81
81
  sheet1 = book.create_worksheet
82
82
  sheet1.row(0)[0] = "文件名"
83
83
  sheet1.row(0)[1] = "文件路径"
84
+ sheet1.row(0)[2] = "文件大小(B)"
84
85
  imags.each_with_index {|item,idx|
85
86
  sheet1.row(idx+1)[0] = item
86
87
  path = imgFinder.get_image_path(item)
87
88
  sheet1.row(idx+1)[1] = path
88
89
  unuse_total_size = unuse_total_size + File.size(path)
90
+ sheet1.row(idx+1)[2] = File.size(path)
89
91
  puts item
90
92
  }
91
93
  book.write "#{imgFinder.find_path}/search_result.xls"
@@ -42,6 +42,7 @@ module Itools
42
42
  file_count = 0
43
43
  total_count = 0
44
44
  total_size = 0
45
+ file_size = 0
45
46
  Find.find(folder) do |filename|
46
47
  if File.file?(filename)
47
48
  total_count = total_count + 1
@@ -52,6 +53,7 @@ module Itools
52
53
  elsif file_exts.include?(File.extname(filename).delete(".")) #查找指定后缀的文件
53
54
  sum = sum + File.size(filename)
54
55
  file_count = file_count + 1
56
+ file_size = file_size + File.size(filename)
55
57
  else
56
58
  #不做任何处理
57
59
  end
@@ -60,7 +62,7 @@ module Itools
60
62
  if file_exts.size == 0
61
63
  puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)}(#{total_size})\033[0m"
62
64
  else
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"
65
+ puts "\033[32m文件夹中共#{total_count}个文件,共#{get_show_size(total_size)}(#{total_size});找到后缀为(#{file_exts_string})的文件#{file_count}个,共#{get_show_size(file_size)}(#{file_size}).\033[0m"
64
66
  end
65
67
 
66
68
  # puts `du -b #{folder} | awk '{print $1}'`.to_i
@@ -0,0 +1,98 @@
1
+ module Itools
2
+ class PodInfo
3
+ attr_accessor :pod_name, :pod_version
4
+ def initialize(name, version)
5
+ @pod_name = name
6
+ @pod_version = version
7
+ end
8
+ end
9
+ class PodfileTiled
10
+ def self.podfile_tiled(args)
11
+ all_pods = [] #所有依赖的pod
12
+ exist_pods = [] #当前podfile已经存在的pod
13
+ need_add_pods = [] #当前需要添加到podfile中的pod
14
+ pod_tag = 1
15
+
16
+ fileInfo = File.open(args[0])
17
+
18
+ total_index = 0
19
+ fileInfo.each_line do |line|
20
+ line_string = line.delete("\n")
21
+ if line_string == 'PODS:'
22
+ # 配置成功,后续请直接使用git commit ,不要加 -m\033[0m
23
+ puts "\033[32m开始分析依赖\033[0m"
24
+ pod_tag = 1
25
+ next
26
+ elsif line_string == 'DEPENDENCIES:'
27
+ puts "\033[32m开始分析当前Podfile中已添加的依赖项\033[0m"
28
+ pod_tag = 2
29
+ next
30
+ elsif line_string == 'SPEC REPOS:'
31
+ pod_tag = 0
32
+ puts "\033[32mpodfile.lock分析结束\033[0m"
33
+ end
34
+
35
+ if pod_tag == 1 #分析所有pod
36
+ if line_string[0, 3] == ' -' && !line_string.include?('/')
37
+ # puts line_string
38
+ pod_version = line_string[/\((.*?)\)/, 1]
39
+ pod_name =
40
+ line_string.gsub(pod_version, '').delete('(').delete(')').delete(
41
+ ':'
42
+ ).delete('-').strip
43
+ temp_pod = PodInfo.new(pod_name, pod_version)
44
+ all_pods << temp_pod
45
+ puts "查找到pod库:#{pod_name}, 版本号为:'#{pod_version}' #{all_pods.length}"
46
+ end
47
+ end
48
+
49
+ if pod_tag == 2 #分析当前podfile已经有的pod
50
+ pod_name
51
+ pod_version = line_string[/\((.*?)\)/, 1]
52
+ if pod_version
53
+ pod_name =
54
+ line_string.gsub(pod_version, '').delete('(').delete(')').delete(
55
+ ':'
56
+ ).delete('-').strip
57
+ else
58
+ pod_name = line_string.delete('-').lstrip.rstrip
59
+ end
60
+ # if pod_name.length == 0 || pod_name.include?('/')
61
+ # next
62
+ # end
63
+ temp_pod = PodInfo.new(pod_name, pod_version)
64
+ if pod_version
65
+ temp_pod.pod_version = pod_version.delete('=').strip
66
+ end
67
+
68
+ exist_pods << temp_pod
69
+ puts "Podfile中已包含 #{pod_name}, 版本号为:'#{pod_version}'"
70
+ end
71
+ end
72
+ temp_exist_pods = []
73
+ all_pods.each do |all_pod|
74
+ exist_pods.each do |exist_pod|
75
+ exist_pod_name = exist_pod.pod_name
76
+ if exist_pod_name.include?('/')
77
+ exist_pod_name = exist_pod_name.split('/')[0]
78
+ end
79
+ if all_pod.pod_name == exist_pod_name
80
+ temp_exist_pods << all_pod
81
+ end
82
+ end
83
+ end
84
+
85
+ need_add_pods = all_pods - temp_exist_pods
86
+ if need_add_pods.length == 0
87
+ puts "\033[32m恭喜!!!无需平铺,当前已全部平铺\033[0m"
88
+ else
89
+ puts "\033[32m以下为要平铺的库,直接复制粘贴至Podfile中即可:\033[0m"
90
+ need_add_pods.each do |to_add|
91
+ puts "pod '#{to_add.pod_name}', '#{to_add.pod_version}'"
92
+ end
93
+ end
94
+
95
+ end
96
+ end
97
+ end
98
+
@@ -1,3 +1,4 @@
1
1
  module Itools
2
- VERSION = "0.5.2"
2
+ VERSION = "1.2.0"
3
+
3
4
  end
data/lib/itools.rb CHANGED
@@ -6,4 +6,5 @@ require "itools/get_size"
6
6
  require "itools/file_handle"
7
7
  require "itools/class_unuse_finder"
8
8
  require "itools/count_code_line"
9
- require "itools/git_sets"
9
+ require "itools/git_sets"
10
+ require "itools/podfile_tiled"
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - zhanggui
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-28 00:00:00.000000000 Z
11
+ date: 2022-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.17'
19
+ version: 2.2.33
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.17'
26
+ version: 2.2.33
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: 12.3.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gli
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +113,7 @@ files:
113
113
  - lib/itools/get_size.rb
114
114
  - lib/itools/git_sets.rb
115
115
  - lib/itools/link_map.rb
116
+ - lib/itools/podfile_tiled.rb
116
117
  - lib/itools/string_searcher.rb
117
118
  - lib/itools/temple-commit-msg.dat
118
119
  - lib/itools/version.rb
@@ -124,7 +125,7 @@ metadata:
124
125
  homepage_uri: https://github.com/ScottZg/itools
125
126
  source_code_uri: https://github.com/ScottZg/itools
126
127
  changelog_uri: https://github.com/ScottZg/itools/blob/master/README.md
127
- post_install_message:
128
+ post_install_message:
128
129
  rdoc_options: []
129
130
  require_paths:
130
131
  - lib
@@ -139,9 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.7.8
144
- signing_key:
143
+ rubygems_version: 3.0.9
144
+ signing_key:
145
145
  specification_version: 4
146
146
  summary: iOS tools
147
147
  test_files: []