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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +13 -11
- data/README.md +4 -4
- data/bin/itools +8 -0
- data/itools.gemspec +2 -2
- data/lib/itools/class_unuse_finder.rb +1 -0
- data/lib/itools/find_unuse_img.rb +2 -0
- data/lib/itools/get_size.rb +3 -1
- data/lib/itools/podfile_tiled.rb +98 -0
- data/lib/itools/version.rb +2 -1
- data/lib/itools.rb +2 -1
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2f0c8c5a5b8189fd5561b57ee9fd5ba7b90a8e899cc51569b215409959a0760
|
4
|
+
data.tar.gz: 77127100e3fc43d53d05bf4da8fac3d30c5604b6535477ba0be11ced2fe007b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e321a1cdb2b2fe8c6da17853a45bd94d3edb5e2781e961c4eb4be46a51304e48a2ec5f31ed71b29a8183d3d06d35d04c1610cb2352eb64d297d5b34d4709cdb9
|
7
|
+
data.tar.gz: 8059a806fd284eb1c29cc17d5eb54a657a9303524b11658a3cccd40e29dc2e9746faac936d2b7749192b77433b9ca12fe17dac5efc054f02b542e3a1b7d0ab5c
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.4.0
|
data/Gemfile.lock
CHANGED
@@ -1,28 +1,30 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
itools (
|
5
|
-
bundler (
|
4
|
+
itools (1.1.5)
|
5
|
+
bundler (>= 2.2.33)
|
6
6
|
git (~> 1.5)
|
7
7
|
gli (~> 2.17)
|
8
|
-
rake (
|
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.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
24
|
+
x86_64-darwin-20
|
23
25
|
|
24
26
|
DEPENDENCIES
|
25
27
|
itools!
|
26
28
|
|
27
29
|
BUNDLED WITH
|
28
|
-
|
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.
|
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", "
|
39
|
-
spec.add_runtime_dependency "rake", "
|
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'
|
@@ -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"
|
data/lib/itools/get_size.rb
CHANGED
@@ -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(
|
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
|
+
|
data/lib/itools/version.rb
CHANGED
data/lib/itools.rb
CHANGED
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
|
-
|
143
|
-
|
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: []
|