lg_pod_plugin 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lg_pod_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - dongzb01
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-25 00:00:00.000000000 Z
11
+ date: 2022-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.12.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rubyzip
28
+ name: archive-zip
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.3.2
33
+ version: 0.12.0
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: 2.3.2
40
+ version: 0.12.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cocoapods
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '2.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: sqlite3
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.5'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.5'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: bacon
77
91
  requirement: !ruby/object:Gem::Requirement
@@ -127,17 +141,23 @@ files:
127
141
  - bin/lg
128
142
  - lib/command/cache.rb
129
143
  - lib/command/command.rb
144
+ - lib/command/init.rb
130
145
  - lib/command/install.rb
131
146
  - lib/command/update.rb
132
147
  - lib/lg_pod_plugin.rb
133
148
  - lib/lg_pod_plugin/database.rb
134
149
  - lib/lg_pod_plugin/downloader.rb
135
150
  - lib/lg_pod_plugin/file_path.rb
136
- - lib/lg_pod_plugin/git_util.rb
151
+ - lib/lg_pod_plugin/gitlab_api.rb
152
+ - lib/lg_pod_plugin/gitlab_archive.rb
153
+ - lib/lg_pod_plugin/gitlab_download.rb
137
154
  - lib/lg_pod_plugin/install.rb
138
155
  - lib/lg_pod_plugin/l_cache.rb
156
+ - lib/lg_pod_plugin/l_config.rb
139
157
  - lib/lg_pod_plugin/l_util.rb
140
158
  - lib/lg_pod_plugin/log.rb
159
+ - lib/lg_pod_plugin/net-ping.rb
160
+ - lib/lg_pod_plugin/podspec.rb
141
161
  - lib/lg_pod_plugin/request.rb
142
162
  - lib/lg_pod_plugin/string.rb
143
163
  - lib/lg_pod_plugin/version.rb
@@ -1,331 +0,0 @@
1
- require 'pp'
2
- require 'git'
3
- require_relative 'l_util'
4
- require_relative 'request'
5
- require_relative 'l_cache'
6
-
7
- module LgPodPlugin
8
-
9
- class LGitUtil
10
-
11
- REQUIRED_ATTRS ||= %i[git tag path name commit branch].freeze
12
- attr_accessor(*REQUIRED_ATTRS)
13
-
14
- def initialize(name, options = {})
15
- self.name = name
16
- self.git = options[:git]
17
- self.tag = options[:tag]
18
- self.path = options[:path]
19
- self.branch = options[:branch]
20
- self.commit = options[:commit]
21
- end
22
-
23
- # 从 GitLab下载 zip包
24
- # 根据branch 下载 zip 包
25
- def gitlab_download_branch_zip(path, temp_name)
26
- branch = self.branch ||= "master"
27
- token = LRequest.shared.token
28
- unless token
29
- return self.git_clone_by_branch(path, temp_name)
30
- end
31
- file_name = "#{temp_name}.zip"
32
- base_url = self.git[0...self.git.length - 4]
33
- project_name = base_url.split("/").last
34
- unless project_name
35
- return self.git_clone_by_branch(path, temp_name)
36
- end
37
- download_url = base_url + "/-/archive/" + branch + "/#{project_name}-#{branch}.zip"
38
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
39
- system("curl --header PRIVATE-TOKEN:#{token} -o #{file_name} --connect-timeout 60 --retry 3 #{download_url}")
40
- unless File.exist?(file_name)
41
- LgPodPlugin.log_red("下载zip包失败, 尝试git clone #{self.git}")
42
- return self.git_clone_by_branch(path, temp_name)
43
- end
44
- # 解压文件
45
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
46
- new_file_name = "#{project_name}-#{branch}"
47
- unless result && File.exist?(new_file_name)
48
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
49
- return self.git_clone_by_branch(path, temp_name)
50
- end
51
- path.join(new_file_name)
52
- end
53
-
54
- # 通过tag下载zip包
55
- def gitlab_download_tag_zip(path, temp_name)
56
- token = LRequest.shared.token
57
- unless token
58
- return self.git_clone_by_tag(path, temp_name)
59
- end
60
- base_url = self.git[0...self.git.length - 4]
61
- project_name = base_url.split("/").last
62
- unless project_name
63
- return self.git_clone_by_tag(path, temp_name)
64
- end
65
- file_name = "#{temp_name}.zip"
66
- download_url = base_url + "/-/archive/" + self.tag + "/#{project_name}-#{self.tag}.zip"
67
- # 下载文件
68
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
69
- system("curl -s --header PRIVATE-TOKEN:#{token} -o #{file_name} --connect-timeout 60 --retry 3 #{download_url}")
70
- unless File.exist?(file_name)
71
- LgPodPlugin.log_red("下载zip包失败, 尝试git clone #{self.git}")
72
- return self.git_clone_by_tag(path, temp_name)
73
- end
74
- # 解压文件
75
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
76
- new_file_name = "#{project_name}-#{self.tag}"
77
- unless result && File.exist?(new_file_name)
78
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
79
- return self.git_clone_by_tag(path, temp_name)
80
- end
81
- path.join(new_file_name)
82
- end
83
-
84
- # 通过 commit 下载zip包
85
- def gitlab_download_commit_zip(path, temp_name)
86
- token = LRequest.shared.token
87
- unless token
88
- return self.git_clone_by_commit(path, temp_name)
89
- end
90
- base_url = self.git[0...self.git.length - 4]
91
- project_name = base_url.split("/").last
92
- unless project_name
93
- return self.git_clone_by_commit(path, temp_name)
94
- end
95
- file_name = "#{temp_name}.zip"
96
- download_url = base_url + "/-/archive/" + self.commit + "/#{project_name}-#{self.commit}.zip"
97
- # 下载文件
98
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
99
- system("curl -s --header PRIVATE-TOKEN:#{token} -o #{file_name} --connect-timeout 60 --retry 3 #{download_url}")
100
- unless File.exist?(file_name)
101
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
102
- return self.git_clone_by_commit(path, temp_name)
103
- end
104
- # 解压文件
105
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
106
- new_file_name = "#{project_name}-#{self.commit}"
107
- unless result && File.exist?(new_file_name)
108
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
109
- return self.git_clone_by_commit(path, temp_name)
110
- end
111
- path.join(new_file_name)
112
- end
113
-
114
- # 从 Github下载 zip 包
115
- # 根据branch 下载 zip 包
116
- def github_download_branch_zip(path, temp_name)
117
- file_name = "#{temp_name}.zip"
118
- branch = self.branch ||= "master"
119
- if self.git.include?(".git")
120
- base_url = self.git[0...self.git.length - 4]
121
- else
122
- base_url = self.git
123
- end
124
- project_name = base_url.split("/").last if base_url
125
- origin_url = base_url + "/archive/#{branch}.zip"
126
- download_url = "https://gh.api.99988866.xyz/#{origin_url}"
127
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
128
- system("curl -o #{file_name} --connect-timeout 60 --retry 3 #{download_url}")
129
- unless File.exist?(file_name)
130
- LgPodPlugin.log_red("下载zip包失败, 尝试git clone #{self.git}")
131
- return self.git_clone_by_branch(path, temp_name)
132
- end
133
- # 解压文件
134
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
135
- new_file_name = "#{project_name}-#{branch}"
136
- unless result && File.exist?(new_file_name)
137
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
138
- return self.git_clone_by_branch(path, temp_name)
139
- end
140
- path.join(new_file_name)
141
- end
142
-
143
- # 通过tag下载zip包
144
- def github_download_tag_zip(path, temp_name)
145
- file_name = "#{temp_name}.zip"
146
- if self.git.include?(".git")
147
- base_url = self.git[0...self.git.length - 4]
148
- else
149
- base_url = self.git
150
- end
151
- project_name = base_url.split("/").last if base_url
152
- origin_url = base_url + "/archive/refs/tags/#{self.tag}.zip"
153
- download_url = "https://gh.api.99988866.xyz/#{origin_url}"
154
- # 下载文件
155
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
156
- system("curl -s -o #{file_name} --connect-timeout 60 --retry 3 #{download_url}")
157
- unless File.exist?(file_name)
158
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
159
- return self.git_clone_by_tag(path, temp_name)
160
- end
161
- # 解压文件
162
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
163
- if self.tag.include?("v") && self.tag[0...1] == "v"
164
- this_tag = self.tag[1...self.tag.length]
165
- else
166
- this_tag = self.tag
167
- end
168
- new_file_name = "#{project_name}-#{this_tag}"
169
- unless result && File.exist?(new_file_name)
170
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
171
- return self.git_clone_by_tag(path, temp_name)
172
- end
173
- path.join(new_file_name)
174
- end
175
-
176
- # 通过 commit 下载zip包
177
- def github_download_commit_zip(path, temp_name)
178
- file_name = "#{temp_name}.zip"
179
- if self.git.include?(".git")
180
- base_url = self.git[0...self.git.length - 4]
181
- else
182
- base_url = self.git
183
- end
184
- project_name = base_url.split("/").last if base_url
185
- origin_url = base_url + "/archive/#{self.commit}.zip"
186
- download_url = "https://gh.api.99988866.xyz/#{origin_url}"
187
- # 下载文件
188
- LgPodPlugin.log_blue "开始下载 => #{download_url}"
189
- system("curl -s -o #{file_name} --connect-timeout 15 --retry 3 #{download_url}")
190
- unless File.exist?(file_name)
191
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
192
- return self.git_clone_by_commit(path, temp_name)
193
- end
194
- # 解压文件
195
- result = LUtils.unzip_file(path.join(file_name).to_path, "./")
196
- new_file_name = "#{project_name}-#{self.commit}"
197
- unless result && File.exist?(new_file_name)
198
- LgPodPlugin.log_red("正在尝试git clone #{self.git}")
199
- return self.git_clone_by_commit(path, temp_name)
200
- end
201
- path.join(new_file_name)
202
- end
203
-
204
- def git_clone_by_branch(path, temp_name)
205
- if self.git && self.branch
206
- LgPodPlugin.log_blue "git clone --depth=1 --branch #{self.branch} #{self.git}"
207
- system("git clone --depth=1 -b #{self.branch} #{self.git} #{temp_name}")
208
- else
209
- LgPodPlugin.log_blue "git clone --depth=1 #{self.git}"
210
- system("git clone --depth=1 #{self.git} #{temp_name}")
211
- end
212
- path.join(temp_name)
213
- end
214
-
215
- def git_clone_by_tag(path, temp_name)
216
- LgPodPlugin.log_blue "git clone --tag #{self.tag} #{self.git}"
217
- system("git clone --depth=1 -b #{self.tag} #{self.git} #{temp_name}")
218
- path.join(temp_name)
219
- end
220
-
221
- def git_clone_by_commit(path, temp_name)
222
- LgPodPlugin.log_blue "git clone #{self.git}"
223
- Git.init(temp_name)
224
- FileUtils.chdir(temp_name)
225
- system("git remote add origin #{self.git}")
226
- system("git fetch origin #{self.commit}")
227
- system("git reset --hard FETCH_HEAD")
228
- path.join(temp_name)
229
- end
230
-
231
- # clone 代码仓库
232
- def git_clone_repository(path)
233
- FileUtils.chdir(path)
234
- temp_name = "lg_temp_pod"
235
- if self.git && self.tag
236
- if self.git.include?("capp/iOS")
237
- return gitlab_download_tag_zip(path, temp_name)
238
- elsif self.git.include?("https://github.com")
239
- return github_download_tag_zip path, temp_name
240
- else
241
- return self.git_clone_by_tag(path, temp_name)
242
- end
243
- elsif self.git && self.branch
244
- if self.git.include?("capp/iOS")
245
- return self.gitlab_download_branch_zip(path, temp_name)
246
- elsif self.git.include?("https://github.com")
247
- return self.github_download_branch_zip path, temp_name
248
- else
249
- return self.git_clone_by_branch(path, temp_name)
250
- end
251
- elsif self.git && self.commit
252
- if self.git.include?("capp/iOS")
253
- return self.gitlab_download_commit_zip(path, temp_name)
254
- elsif self.git.include?("https://github.com")
255
- return self.github_download_commit_zip path, temp_name
256
- else
257
- return self.git_clone_by_commit(path, temp_name)
258
- end
259
- elsif self.git
260
- if self.git.include?("capp/iOS")
261
- return self.gitlab_download_branch_zip(path, temp_name)
262
- elsif self.git.include?("https://github.com")
263
- return self.github_download_branch_zip path, temp_name
264
- else
265
- return self.git_clone_by_branch(path, temp_name)
266
- end
267
- end
268
-
269
- end
270
-
271
- def pre_download_git_repository
272
- temp_path = LFileManager.download_director.join("temp")
273
- if temp_path.exist?
274
- FileUtils.rm_rf(temp_path)
275
- end
276
- lg_pod_path = LRequest.shared.cache.cache_root
277
- unless lg_pod_path.exist?
278
- lg_pod_path.mkdir(0700)
279
- end
280
- get_temp_folder = git_clone_repository(lg_pod_path)
281
- #下载 git 仓库失败
282
- unless get_temp_folder.exist?
283
- return nil
284
- end
285
- if LRequest.shared.single_git
286
- LgPodPlugin::LCache.cache_pod(self.name, get_temp_folder, { :git => self.git })
287
- end
288
- LgPodPlugin::LCache.cache_pod(self.name, get_temp_folder, LRequest.shared.get_cache_key_params)
289
- FileUtils.chdir(LFileManager.download_director)
290
- FileUtils.rm_rf(lg_pod_path)
291
- end
292
-
293
- # 获取最新的一条 commit 信息
294
- def self.git_ls_remote_refs(git, branch, tag, commit)
295
- if branch
296
- LgPodPlugin.log_yellow "git ls-remote #{git} #{branch}"
297
- result = %x(git ls-remote #{git} #{branch})
298
- new_commit = result.split(" ").first if result
299
- return [branch, new_commit]
300
- elsif tag
301
- LgPodPlugin.log_yellow "git ls-remote #{git}"
302
- ls = Git.ls_remote(git, :head => true)
303
- map = ls["tags"]
304
- keys = map.keys
305
- idx = keys.index("#{tag}")
306
- unless idx
307
- return [nil, nil]
308
- end
309
- key = keys[idx]
310
- new_commit = map[key][:sha]
311
- return [nil, new_commit]
312
- else
313
- if commit
314
- return nil, commit
315
- else
316
- LgPodPlugin.log_yellow "git ls-remote #{git}"
317
- ls = Git.ls_remote(git, :head => true)
318
- find_commit = ls["head"][:sha]
319
- ls["branches"].each do |key, value|
320
- sha = value[:sha]
321
- next if sha != find_commit
322
- return [key, find_commit]
323
- end
324
- return nil, find_commit
325
- end
326
- end
327
-
328
- end
329
-
330
- end
331
- end