itools 0.5.2 → 1.2.0

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: 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: []