gct 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gct/command/spec/lint.rb +53 -14
- data/lib/gct/version.rb +1 -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: fcbe1a0b358a5d2f8579f1dcdbc323a94c390ad1d022ea362955399c158572b6
|
4
|
+
data.tar.gz: 7bbf206c9c77fbff1d2e101cd1156167ad758b2d9092038ec8f7cb9081005375
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9180c790294328532eaa45342f656b16fcf7689b53d7d93bb68fdde1357a72bcaaf6621df390869d085be924130730c2166ddc47583ef357ddba94fe3f562478
|
7
|
+
data.tar.gz: 0f6fd44317552e8a3be79ae42b65b69cd8bf4a9bd585f5ad0ecc06d22073dd87bca49047191dfca57d50c9d84ab90cf090db0ce393a0e05a71866d91b82dbe4f
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'cocoapods'
|
2
|
+
|
1
3
|
module Gct
|
2
4
|
class Command
|
3
5
|
class Spec < Command
|
@@ -20,24 +22,61 @@ module Gct
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def run
|
23
|
-
|
25
|
+
lint_spec
|
26
|
+
end
|
27
|
+
|
28
|
+
def generate_podfile(pod_name, spec_path)
|
29
|
+
Pod::Podfile.new do
|
30
|
+
install! 'cocoapods', :integrate_targets => false
|
31
|
+
inhibit_all_warnings!
|
32
|
+
source 'https://gi-dev.ccrgt.com/ios/iOSCRGTPodSource.git'
|
33
|
+
target 'App' do
|
34
|
+
platform :ios, 10.0
|
35
|
+
pod pod_name, :podspec => spec_path, :inhibit_warnings => false
|
36
|
+
end
|
37
|
+
end
|
24
38
|
end
|
25
39
|
|
26
|
-
def
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
40
|
+
def lint_spec
|
41
|
+
spec_file = Pathname.glob('*.podspec').first
|
42
|
+
raise "在 #{Dir.pwd} 目录下找不到podspec文件".red if spec_file.nil?
|
43
|
+
|
44
|
+
spec_path = spec_file.realpath
|
45
|
+
spec = Pod::Specification.from_file(spec_file)
|
46
|
+
|
47
|
+
puts ''
|
48
|
+
Pod::UI.section('校验组件循环引用'.green) do
|
49
|
+
sandbox = Pod::Sandbox.new(Pod::Config.instance.sandbox_root)
|
50
|
+
podfile = generate_podfile(spec.name, spec_path)
|
51
|
+
installer = Pod::Installer.new(sandbox, podfile)
|
52
|
+
%i(prepare resolve_dependencies download_dependencies write_lockfiles).each { |m| installer.send(m) }
|
53
|
+
end
|
54
|
+
|
55
|
+
puts ''
|
56
|
+
Pod::UI.section('校验组件包含关系'.green) do
|
57
|
+
specific_bussiness_line_pods = %w[
|
58
|
+
GCT.R
|
59
|
+
].freeze
|
60
|
+
specific_pods = []
|
61
|
+
if spec.dependencies.length > 0
|
62
|
+
specific_pods = spec.dependencies.select do |dep|
|
63
|
+
specific_bussiness_line_pods.include?(dep.root_name)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
if spec.subspecs.length > 0
|
67
|
+
spec.subspecs.each do |subspec|
|
68
|
+
new_specific_pods = []
|
69
|
+
new_specific_pods = subspec.dependencies.select do |dep|
|
70
|
+
specific_bussiness_line_pods.include?(dep.root_name)
|
37
71
|
end
|
38
|
-
|
39
|
-
|
72
|
+
specific_pods = specific_pods + new_specific_pods
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
if specific_pods.any?
|
77
|
+
raise "podspec 不建议包含组件 #{specific_pods.map(&:name).join(', ')}".red
|
40
78
|
end
|
79
|
+
puts '业务线私有组件包含关系校验完毕'.green
|
41
80
|
end
|
42
81
|
end
|
43
82
|
end
|
data/lib/gct/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jieming
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|