cocoapods-meitu-bin 1.1.5 → 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: 466b8b10f18760c5cd7a468a4a4ee860bcec5650fc79be7622f4bd545eac6562
4
- data.tar.gz: 140cfcba73e84f74f011a42d7d4e2f2a1c8366c5c74a3529d38da10b2c6b0f98
3
+ metadata.gz: 20e39980aef9bdfc449829f36825d3e494276a9c40dfeacc6315567c61aa54da
4
+ data.tar.gz: aee80d60a26a5938112fd2e26982d0ed5efa7d811c38bea89b06f3820c75165e
5
5
  SHA512:
6
- metadata.gz: f5d00b8d229b43e33cd69997aa29f2856bde47fdd1701fc64ea9e0597bbd49e4758b1bd9b98de2f8fe2cf8d2e32af9e90fb083b2af134acdc5a39bfc440020c6
7
- data.tar.gz: 8a0c5673d4ab1c328eba75fa07e9c48920e3d60571dca4214e32323defa762d139c94d298796d32e553eb7772685a485bc2a0df09fdc49f7fd3e6f84563a529c
6
+ metadata.gz: 4520ca7be915df41b5918edcfacf04231d6962c20d9186925f382c45968f98af2c023d92d15d35f5d40c67ec5a3e3d1e88033c14415975f5383274e56a5fd14a
7
+ data.tar.gz: d00fab77b0354c225e06c425d90e6b7601a99c4e7c315c498f5ff28484ea882cc54b085ac3382ec2bca87cae9d4184c97de0c7ef2655cc4bdc39705a7a2af6ee
@@ -0,0 +1,37 @@
1
+ require 'digest'
2
+ module Pod
3
+ class Command
4
+ class Bin < Command
5
+ class GetChecksum < Bin
6
+ self.summary = '根据输入的podfile路径返回该podfile对应checksum(类似文件MD5值)'
7
+ self.description = <<-DESC
8
+ #{summary}
9
+ DESC
10
+
11
+ def self.options
12
+ [
13
+ %w[--path=podfile路径]
14
+ ].concat(super).uniq
15
+ end
16
+
17
+ def initialize(argv)
18
+ @path = argv.option('path', "")
19
+ super
20
+ end
21
+
22
+ def run
23
+ puts calculate_checksum(@path)
24
+ end
25
+ # 计算checksum值
26
+ def calculate_checksum(file_path)
27
+ return "" unless File.exist?(file_path)
28
+ content = File.read(file_path)
29
+ checksum = Digest::SHA1.hexdigest(content)
30
+ checksum = checksum.encode('UTF-8') if checksum.respond_to?(:encode)
31
+ return checksum
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -8,6 +8,7 @@ require 'cocoapods-meitu-bin/command/bin/repo'
8
8
  require 'cocoapods-meitu-bin/command/bin/spec'
9
9
  require 'cocoapods-meitu-bin/command/bin/build_all'
10
10
  require 'cocoapods-meitu-bin/command/bin/output_source'
11
+ require 'cocoapods-meitu-bin/command/bin/get_checksum.rb'
11
12
  require 'cocoapods-meitu-bin/command/bin/header_files_specifications'
12
13
  require 'cocoapods-meitu-bin/command/bin/upload'
13
14
  require 'cocoapods-meitu-bin/command/bin/lock'
@@ -1,5 +1,5 @@
1
1
  module CBin
2
- VERSION = "1.1.5"
2
+ VERSION = "1.2.0"
3
3
  end
4
4
 
5
5
  module Pod
@@ -2,6 +2,7 @@ require 'cocoapods-meitu-bin/native/sources_manager'
2
2
  require 'cocoapods-meitu-bin/command/bin/repo/update'
3
3
  require 'cocoapods-meitu-bin/config/config'
4
4
  require 'cocoapods/user_interface'
5
+ require 'digest'
5
6
  require 'yaml'
6
7
  require 'cocoapods'
7
8
 
@@ -24,24 +25,33 @@ def get_podfile_lock
24
25
  if is_load_podfile_lock
25
26
  #获取 PODFILE CHECKSUM 用来判断服务端是否存在该podfile.lock
26
27
  checksum = Pod::Config.instance.podfile.checksum
28
+ Pod::UI.puts "当前podfile文件的checksum:#{checksum}".green
27
29
  # zip下载地址
28
30
  curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{checksum}/podfile.lock.zip"
29
-
30
31
  # 判断服务端是否存在该podfile.lock
31
32
  is_load_podfile_lock = false
32
33
  if system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200 > /dev/null 2>&1")
34
+ Pod::UI.puts "匹配到精准podfile.lock文件,使用当前podfile文件的checksum:#{checksum}获取对应的podfile.lock文件".green
33
35
  is_load_podfile_lock = true
34
36
  end
35
- branch_value = ENV['branch']
36
- if !is_load_podfile_lock && branch_value && branch_value == 'develop'
37
- curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/develop/podfile.lock.zip"
37
+
38
+ if !is_load_podfile_lock
39
+ branch_value = get_branch_name
40
+ curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{branch_value}/podfile.lock.zip"
38
41
  if system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200 > /dev/null 2>&1")
42
+ Pod::UI.puts "无法匹配到精准podfile.lock文件,使用当前分支:#{branch_value} 对应的podfile.lock文件".green
43
+ is_load_podfile_lock = true
44
+ end
45
+ #兜底使用develop的podfile.lock
46
+ if !is_load_podfile_lock
47
+ Pod::UI.puts "服务端不存在该podfile.lock文件,使用develop分支的podfile.lock文件兜底".green
48
+ curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/develop/podfile.lock.zip"
39
49
  is_load_podfile_lock = true
40
50
  end
41
51
  end
42
52
  # 判断是否需要下载podfile.lock文件
43
53
  if is_load_podfile_lock
44
- puts "获取服务端存储的podfile.lcok文件".green
54
+ Pod::UI.puts "获取服务端存储的podfile.lcok文件".green
45
55
  #下载并解压的podfile.zip文件
46
56
  if system("curl -O #{curl} > /dev/null 2>&1") && system("unzip -o podfile.lock.zip > /dev/null 2>&1")
47
57
  Pod::UI.puts "下载并解压podfile.lcok文件成功".green
@@ -86,10 +96,9 @@ def upload_podfile_lock(checksum,upload = false)
86
96
  curl = "https://xiuxiu-dl-meitu-com.obs.cn-north-4.myhuaweicloud.com/ios/binary/MTXX/#{checksum}/podfile.lock.zip"
87
97
  # 服务端不存在该podfiel.lock文件才上传,避免频繁上报同一个文件
88
98
  if upload || !system("curl -o /dev/null -s -w %{http_code} #{curl} | grep 200 > /dev/null 2>&1")
89
- Pod::UI.puts "上报podfile.lcok文件到服务端".green
90
- puts Pod::Config.instance.podfile.checksum
99
+ Pod::UI.puts "根据checksum:#{checksum}上报podfile.lcok文件到服务端".green
91
100
  if upload
92
- puts "mbox podfile.checksum = #{checksum}"
101
+ puts "mbox工作目录/mtxx/MTXX/podfile 对应的checksum = #{checksum}"
93
102
  end
94
103
  if system("zip podfile.lock.zip Podfile.lock > /dev/null 2>&1") && system("curl -F \"name=MTXX\" -F \"version=#{checksum}\" -F \"file=@#{Pathname.pwd}/podfile.lock.zip\" http://nezha.community.cloud.meitu.com/file/upload.json > /dev/null 2>&1")
95
104
  Pod::UI.puts "上报podfile.lcok文件到服务端成功".green
@@ -107,23 +116,23 @@ end
107
116
  def upload_mbox_podfile_lock
108
117
  begin
109
118
  podfile_path = Pod::Config.instance.installation_root + 'mtxx/MTXX' + 'Podfile'
110
- podfile = Pod::Podfile.from_file(podfile_path) if podfile_path
111
- if podfile
112
- upload_podfile_lock(podfile.checksum,true )
119
+ checksum = get_checksum(podfile_path)
120
+ if checksum && checksum.is_a?(String) && checksum.length > 0
121
+ upload_podfile_lock(checksum,true )
113
122
  end
114
123
  rescue => error
115
124
  puts "mbox podfile.lcok文件兼容处理失败,失败原因:#{error}"
116
125
  end
117
126
  end
118
- def upload_develop_podfile_lock
127
+ def upload_branch_podfile_lock
119
128
  begin
120
- branch_value = ENV['branch']
121
- if branch_value && branch_value == 'develop'
122
- if system("zip podfile.lock.zip Podfile.lock > /dev/null 2>&1") && system("curl -F \"name=MTXX\" -F \"version=develop\" -F \"file=@#{Pathname.pwd}/podfile.lock.zip\" http://nezha.community.cloud.meitu.com/file/upload.json > /dev/null 2>&1")
123
- Pod::UI.puts "上报podfile.lcok文件到服务端成功".green
129
+ branch_value = get_branch_name
130
+ if branch_value && branch_value.is_a?(String) && branch_value.length > 0
131
+ if system("zip podfile.lock.zip Podfile.lock > /dev/null 2>&1") && system("curl -F \"name=MTXX\" -F \"version=#{branch_value}\" -F \"file=@#{Pathname.pwd}/podfile.lock.zip\" http://nezha.community.cloud.meitu.com/file/upload.json > /dev/null 2>&1")
132
+ Pod::UI.puts "根据开发分支名:#{branch_value}上报podfile.lcok文件到服务端成功".green
124
133
  `rm -rf podfile.lock.zip`
125
134
  else
126
- Pod::UI.puts "上报podfile.lcok文件到服务端失败".red
135
+ Pod::UI.puts "根据开发分支名:#{branch_value}上报podfile.lcok文件到服务端失败".red
127
136
  `rm -rf podfile.lock.zip`
128
137
  end
129
138
  end
@@ -131,6 +140,33 @@ def upload_develop_podfile_lock
131
140
 
132
141
  end
133
142
  end
143
+ def get_branch_name
144
+ branch_value = ENV['branch']
145
+ if !branch_value
146
+ mtxx_path = Pod::Config.instance.installation_root + 'mtxx/MTXX'
147
+ #判读podfile文件是否存在
148
+ if File.exist?(mtxx_path)
149
+ Dir.chdir(mtxx_path) do
150
+ branch_value = `git symbolic-ref --short -q HEAD`
151
+ if branch_value == 'develop'
152
+ branch_value = ""
153
+ end
154
+ end
155
+ else
156
+ branch_value = `git symbolic-ref --short -q HEAD`
157
+ end
158
+ end
159
+ branch_value = branch_value.gsub("\n", "")
160
+ branch_value
161
+ end
162
+
163
+ def get_checksum(file_path)
164
+ return nil unless File.exist?(file_path)
165
+ content = File.read(file_path)
166
+ checksum = Digest::SHA1.hexdigest(content)
167
+ checksum = checksum.encode('UTF-8') if checksum.respond_to?(:encode)
168
+ return checksum
169
+ end
134
170
 
135
171
  Pod::HooksManager.register('cocoapods-meitu-bin', :pre_install) do |_context|
136
172
  start_time = Time.now
@@ -181,13 +217,19 @@ end
181
217
  # 注册 pod install 钩子
182
218
  Pod::HooksManager.register('cocoapods-meitu-bin', :post_install) do |context|
183
219
  #基于podfile的checksum上报云端podfile.lock文件
184
- upload_podfile_lock(Pod::Config.instance.podfile.checksum)
220
+ podfile_path = Pod::Config.instance.installation_root + 'podfile'
221
+ # puts "#{podfile_path}".green
222
+ checksum = get_checksum(podfile_path)
223
+ # puts "#{checksum}".green
224
+ if checksum
225
+ upload_podfile_lock(checksum)
226
+ end
185
227
  #判断是否在 mbox 工作目录执行pod install
186
228
  if system("mbox status > /dev/null 2>&1")
187
229
  upload_mbox_podfile_lock
188
230
  end
189
- #基于 develop 分支,上报podfile.lock文件
190
- upload_develop_podfile_lock
231
+ #基于分支,上报podfile.lock文件
232
+ upload_branch_podfile_lock
191
233
  end
192
234
 
193
235
  Pod::HooksManager.register('cocoapods-meitu-bin', :source_provider) do |context, _|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-meitu-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-09 00:00:00.000000000 Z
11
+ date: 2023-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parallel
@@ -102,6 +102,7 @@ files:
102
102
  - lib/cocoapods-meitu-bin/command/bin/archive.rb
103
103
  - lib/cocoapods-meitu-bin/command/bin/auto.rb
104
104
  - lib/cocoapods-meitu-bin/command/bin/build_all.rb
105
+ - lib/cocoapods-meitu-bin/command/bin/get_checksum.rb
105
106
  - lib/cocoapods-meitu-bin/command/bin/header_files_specifications.rb
106
107
  - lib/cocoapods-meitu-bin/command/bin/init.rb
107
108
  - lib/cocoapods-meitu-bin/command/bin/install.rb