podsorz 0.0.2 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +16 -13
- data/lib/podsorz.rb +12 -2
- data/lib/podsorz/command/binary.rb +150 -0
- data/lib/podsorz/command/commit.rb +2 -2
- data/lib/podsorz/command/install.rb +9 -3
- data/lib/podsorz/command/publish.rb +7 -3
- data/lib/podsorz/command/setup.rb +1 -1
- data/lib/podsorz/command/switch.rb +2 -2
- data/lib/podsorz/command/sync.rb +2 -2
- data/lib/podsorz/core/Binary/binary_builder.rb +312 -0
- data/lib/podsorz/core/Binary/binary_manager.rb +173 -0
- data/lib/podsorz/core/Binary/binary_repo.rb +178 -0
- data/lib/podsorz/core/Binary/binary_server.rb +21 -0
- data/lib/podsorz/core/Config/orz_config_templet.rb +31 -0
- data/lib/podsorz/core/{orz_env_detector.rb → Config/orz_env_detector.rb} +1 -1
- data/lib/podsorz/core/{pod_orzconfig_parse.rb → Config/pod_orzconfig_parse.rb} +15 -1
- data/lib/podsorz/core/{podfile_io.rb → PodFile/podfile_io.rb} +143 -4
- data/lib/podsorz/core/{podfile_model.rb → PodFile/podfile_model.rb} +26 -1
- data/lib/podsorz/core/{pods_detector.rb → PodsOrz/pods_detector.rb} +1 -1
- data/lib/podsorz/core/{pods_git_manager.rb → PodsOrz/pods_git_manager.rb} +22 -12
- data/lib/podsorz/core/{pods_git_operator.rb → PodsOrz/pods_git_operator.rb} +134 -37
- data/lib/podsorz/core/{pods_repo.rb → PodsOrz/pods_repo.rb} +44 -11
- data/lib/podsorz/core/{pods_version.rb → PodsOrz/pods_version.rb} +4 -1
- data/lib/podsorz/core/Specs/podspec_model.rb +45 -0
- data/lib/podsorz/util/git_operator.rb +47 -0
- data/lib/podsorz/version.rb +1 -1
- data/podsorz.gemspec +11 -1
- metadata +35 -15
- data/Note +0 -3
- data/lib/podsorz/core/orz_config_templet.rb +0 -13
@@ -5,11 +5,13 @@ module PodsOrz
|
|
5
5
|
class PodsRepo
|
6
6
|
attr_accessor :repo_name, :repo_url
|
7
7
|
|
8
|
+
def initialize()
|
9
|
+
@repo_name = "kuxiu_specs"
|
10
|
+
@repo_url = "git@gitlab.91banban.com:ios_pods/Specs.git"
|
11
|
+
end
|
12
|
+
|
8
13
|
def check_repo_exist
|
9
14
|
command = Thread.new do
|
10
|
-
@repo_name = "kuxiu_specs"
|
11
|
-
@repo_url = "git@gitlab.91banban.com:ios_pods/Specs.git"
|
12
|
-
|
13
15
|
has_repo = false
|
14
16
|
Open3.popen3("pod repo list") do |stdin , stdout , stderr, wait_thr|
|
15
17
|
while line = stdout.gets
|
@@ -53,7 +55,7 @@ module PodsOrz
|
|
53
55
|
Logger.warning("#{pod}:#{pod_version} large than git_tag:#{git_tag}")
|
54
56
|
end
|
55
57
|
|
56
|
-
compare_result
|
58
|
+
compare_result
|
57
59
|
|
58
60
|
end
|
59
61
|
|
@@ -67,7 +69,7 @@ module PodsOrz
|
|
67
69
|
case compare_result
|
68
70
|
when 0
|
69
71
|
#same
|
70
|
-
Logger.default("#{pod}:#{pod_version} has nothing to update remote
|
72
|
+
Logger.default("#{pod}:#{pod_version} has nothing to update remote #{@repo_name}")
|
71
73
|
when -1
|
72
74
|
#less than remote version
|
73
75
|
Logger.error("#{pod}:#{pod_version} is less than remote:#{remote_version} \n please checkout manual,make sure local_pod_version = (remote_version +1).It would be great if you could also remove the invalid tag:#{pod_version} this time. It doesn't matter if you don't delete it")
|
@@ -76,17 +78,41 @@ module PodsOrz
|
|
76
78
|
Logger.warning("#{pod}:#{pod_version} large than remote:#{remote_version}, will start update remote")
|
77
79
|
end
|
78
80
|
|
79
|
-
compare_result
|
81
|
+
compare_result
|
82
|
+
end
|
83
|
+
|
84
|
+
def directory_pod_version(pod, pod_version)
|
85
|
+
directory_result = ""
|
86
|
+
|
87
|
+
dir_kuxiu_specs = "#{Dir.home}/.cocoapods/repos/#{@repo_name}"
|
88
|
+
dir_pod_path = File.expand_path("#{pod}", dir_kuxiu_specs)
|
89
|
+
is_dir_exist = File.directory?(dir_pod_path)
|
90
|
+
|
91
|
+
unless is_dir_exist
|
92
|
+
Logger.warning("#{pod} remote #{pod}\/ directory do not exist")
|
93
|
+
return directory_result
|
94
|
+
end
|
95
|
+
|
96
|
+
dir_version_path = File.expand_path("#{pod_version}", dir_pod_path)
|
97
|
+
is_dir_exist = File.directory?(dir_version_path)
|
98
|
+
unless is_dir_exist
|
99
|
+
Logger.warning("#{pod}:#{pod_version} remote #{pod}.podspec do not exist")
|
100
|
+
return directory_result
|
101
|
+
end
|
102
|
+
|
103
|
+
directory_result = dir_version_path
|
104
|
+
|
105
|
+
directory_result
|
80
106
|
end
|
81
107
|
|
82
108
|
def fetch_remote_pod_version(pod)
|
83
109
|
version = "0.0.0"
|
84
110
|
|
85
|
-
dir_kuxiu_specs = "#{Dir.home}/.cocoapods/repos
|
111
|
+
dir_kuxiu_specs = "#{Dir.home}/.cocoapods/repos/#{@repo_name}"
|
86
112
|
dir_pod_path = File.expand_path("#{pod}", dir_kuxiu_specs)
|
87
|
-
|
113
|
+
is_dir_exist = File.directory?(dir_pod_path)
|
88
114
|
|
89
|
-
unless
|
115
|
+
unless is_dir_exist
|
90
116
|
Logger.warning("#{pod} remote spec do not exist, default version: 0.0.0")
|
91
117
|
return version
|
92
118
|
end
|
@@ -157,17 +183,24 @@ module PodsOrz
|
|
157
183
|
|
158
184
|
end
|
159
185
|
|
160
|
-
def push_pod_remote(pod, file_path, pod_version)
|
186
|
+
def push_pod_remote(pod, file_path, pod_version, is_swift)
|
161
187
|
is_push_success = false
|
162
188
|
|
163
189
|
command = Thread.new do
|
164
190
|
repo_push_cmd = []
|
165
191
|
repo_push_cmd << "cd #{file_path}"
|
166
|
-
|
192
|
+
if is_swift
|
193
|
+
repo_push_cmd << "pod repo push #{@repo_name} #{pod}.podspec --sources=#{@repo_url} --allow-warnings --use-libraries --skip-import-validation --use-modular-headers --swift-version=5.0 --skip-tests --platforms=ios"
|
194
|
+
else
|
195
|
+
repo_push_cmd << "pod repo push #{@repo_name} #{pod}.podspec --sources=#{@repo_url} --allow-warnings --use-libraries --skip-import-validation --skip-tests --platforms=ios"
|
196
|
+
end
|
197
|
+
|
167
198
|
|
168
199
|
error_info = []
|
169
200
|
|
201
|
+
Logger.separator()
|
170
202
|
Logger.default("【#{pod}】:#{pod_version} start push repo remote...")
|
203
|
+
Logger.separator()
|
171
204
|
|
172
205
|
IO.popen(repo_push_cmd.join(";")) do |io|
|
173
206
|
io.each do |line|
|
@@ -25,7 +25,10 @@ module PodsOrz
|
|
25
25
|
File.open(file_path, "r") do |file|
|
26
26
|
file.readlines.each do |line|
|
27
27
|
l = line.strip.chomp
|
28
|
-
|
28
|
+
if l.start_with?("#")
|
29
|
+
update_lines << line
|
30
|
+
next
|
31
|
+
end
|
29
32
|
|
30
33
|
if /\.(version)(.*) =/ =~ line
|
31
34
|
version_num = $~.post_match.strip.chomp.to_s
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module PodsOrz
|
2
|
+
|
3
|
+
class PodspecModel
|
4
|
+
|
5
|
+
attr_accessor :dependency_list, :pod_name, :have_resources
|
6
|
+
|
7
|
+
def initialize(podspec_file_path)
|
8
|
+
@dependency_list = []
|
9
|
+
@have_resources = false
|
10
|
+
|
11
|
+
totoal_sentences = []
|
12
|
+
File.open(podspec_file_path, "r") {|io|
|
13
|
+
totoal_sentences = io.readlines
|
14
|
+
}
|
15
|
+
|
16
|
+
totoal_sentences.each do |line|
|
17
|
+
if /\.(name)(.*) =/ =~ line
|
18
|
+
@pod_name = $~.post_match.strip
|
19
|
+
@pod_name = pod_name.gsub(/[\'\"]/, "")
|
20
|
+
end
|
21
|
+
|
22
|
+
if /\.(resource)(.*) =/ =~ line
|
23
|
+
@have_resources = true
|
24
|
+
end
|
25
|
+
|
26
|
+
if /\.dependency/ =~ line
|
27
|
+
dependency = $~.post_match.strip
|
28
|
+
|
29
|
+
unless @pod_name.nil?
|
30
|
+
unless dependency.include? @pod_name
|
31
|
+
@dependency_list << dependency
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
#class end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -53,6 +53,12 @@ module PodsOrz
|
|
53
53
|
Logger.error("Checkout #{branch_name} failed.")
|
54
54
|
is_checkout_success = false
|
55
55
|
end
|
56
|
+
|
57
|
+
if line.include? 'fatal'
|
58
|
+
Logger.error("Checkout #{branch_name} failed.")
|
59
|
+
is_checkout_success = false
|
60
|
+
end
|
61
|
+
|
56
62
|
end
|
57
63
|
|
58
64
|
io.close
|
@@ -231,6 +237,17 @@ module PodsOrz
|
|
231
237
|
end
|
232
238
|
end
|
233
239
|
|
240
|
+
def fetch(path, branch)
|
241
|
+
cmd_line = []
|
242
|
+
|
243
|
+
cmd_line << "cd #{path}"
|
244
|
+
cmd_line << "git fetch origin #{branch}"
|
245
|
+
|
246
|
+
IO.popen(cmd_line.join(";")) do |io|
|
247
|
+
io.close
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
234
251
|
def compare_branch(path, branch, compare_branch)
|
235
252
|
diff_commit_list = []
|
236
253
|
|
@@ -287,6 +304,36 @@ module PodsOrz
|
|
287
304
|
|
288
305
|
end
|
289
306
|
|
307
|
+
def merge(path, parent_branch, son_branch)
|
308
|
+
is_merge_success = true
|
309
|
+
|
310
|
+
merge_cmd_list = []
|
311
|
+
merge_cmd_list << "cd #{path}"
|
312
|
+
merge_cmd_list << "git checkout #{parent_branch}"
|
313
|
+
merge_cmd_list << "git fetch origin #{parent_branch}"
|
314
|
+
merge_cmd_list << "git reset --hard origin/#{parent_branch}"
|
315
|
+
merge_cmd_list << "git merge #{son_branch} --no-ff --no-squash --no-edit"
|
316
|
+
|
317
|
+
merge_cmd_lines = []
|
318
|
+
has_conflicts = false
|
319
|
+
IO.popen(merge_cmd_list.join(";")) do |io|
|
320
|
+
merge_cmd_lines = io.readlines
|
321
|
+
merge_cmd_lines.each do |line|
|
322
|
+
has_conflicts = true if line.include? "Merge conflict"
|
323
|
+
end
|
324
|
+
|
325
|
+
io.close
|
326
|
+
end
|
327
|
+
|
328
|
+
if has_conflicts
|
329
|
+
Logger.error("branch: \"#{parent_branch}\" Merge conflict, please manual fix conflicts.(fix conflicts and run \"git commit\")(use \"git merge --abort\" to abort the merge)")
|
330
|
+
is_merge_success = false
|
331
|
+
return is_merge_success
|
332
|
+
end
|
333
|
+
|
334
|
+
is_merge_success
|
335
|
+
end
|
336
|
+
|
290
337
|
def rebase(path, branch)
|
291
338
|
is_rebase_success = true
|
292
339
|
|
data/lib/podsorz/version.rb
CHANGED
data/podsorz.gemspec
CHANGED
@@ -10,7 +10,16 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["110293734@qq.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{iOS application modulize into pods, improvement for develop modules.}
|
13
|
-
spec.description = %
|
13
|
+
spec.description = %{iOS application modulize into pods, improvement for develop modules.
|
14
|
+
CMD:
|
15
|
+
1.git-flow
|
16
|
+
2.auto publish code
|
17
|
+
3.auto push repo
|
18
|
+
4.auto rewrite podfile
|
19
|
+
5.sync other branch commit
|
20
|
+
6.binary static libary
|
21
|
+
}
|
22
|
+
|
14
23
|
spec.homepage = "https://github.com/XiangqiTu"
|
15
24
|
spec.license = "MIT"
|
16
25
|
|
@@ -36,5 +45,6 @@ Gem::Specification.new do |spec|
|
|
36
45
|
spec.add_runtime_dependency "gli", "~> 2.16"
|
37
46
|
spec.add_runtime_dependency "cocoapods"
|
38
47
|
spec.add_runtime_dependency "colorize"
|
48
|
+
spec.add_runtime_dependency "cocoapods-packager"
|
39
49
|
|
40
50
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: podsorz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xiangqi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01
|
11
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -52,8 +52,23 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
|
56
|
-
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cocoapods-packager
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: "iOS application modulize into pods, improvement for develop modules.
|
70
|
+
\n CMD:\n 1.git-flow\n 2.auto publish code\n 3.auto push repo\n 4.auto
|
71
|
+
rewrite podfile\n 5.sync other branch commit\n 6.binary static libary\n "
|
57
72
|
email:
|
58
73
|
- 110293734@qq.com
|
59
74
|
executables:
|
@@ -65,27 +80,32 @@ files:
|
|
65
80
|
- Gemfile
|
66
81
|
- Gemfile.lock
|
67
82
|
- LICENSE.txt
|
68
|
-
- Note
|
69
83
|
- README.md
|
70
84
|
- Rakefile
|
71
85
|
- bin/podsorz
|
72
86
|
- lib/podsorz.rb
|
87
|
+
- lib/podsorz/command/binary.rb
|
73
88
|
- lib/podsorz/command/commit.rb
|
74
89
|
- lib/podsorz/command/install.rb
|
75
90
|
- lib/podsorz/command/publish.rb
|
76
91
|
- lib/podsorz/command/setup.rb
|
77
92
|
- lib/podsorz/command/switch.rb
|
78
93
|
- lib/podsorz/command/sync.rb
|
79
|
-
- lib/podsorz/core/
|
80
|
-
- lib/podsorz/core/
|
81
|
-
- lib/podsorz/core/
|
82
|
-
- lib/podsorz/core/
|
83
|
-
- lib/podsorz/core/
|
84
|
-
- lib/podsorz/core/
|
85
|
-
- lib/podsorz/core/
|
86
|
-
- lib/podsorz/core/
|
87
|
-
- lib/podsorz/core/
|
88
|
-
- lib/podsorz/core/
|
94
|
+
- lib/podsorz/core/Binary/binary_builder.rb
|
95
|
+
- lib/podsorz/core/Binary/binary_manager.rb
|
96
|
+
- lib/podsorz/core/Binary/binary_repo.rb
|
97
|
+
- lib/podsorz/core/Binary/binary_server.rb
|
98
|
+
- lib/podsorz/core/Config/orz_config_templet.rb
|
99
|
+
- lib/podsorz/core/Config/orz_env_detector.rb
|
100
|
+
- lib/podsorz/core/Config/pod_orzconfig_parse.rb
|
101
|
+
- lib/podsorz/core/PodFile/podfile_io.rb
|
102
|
+
- lib/podsorz/core/PodFile/podfile_model.rb
|
103
|
+
- lib/podsorz/core/PodsOrz/pods_detector.rb
|
104
|
+
- lib/podsorz/core/PodsOrz/pods_git_manager.rb
|
105
|
+
- lib/podsorz/core/PodsOrz/pods_git_operator.rb
|
106
|
+
- lib/podsorz/core/PodsOrz/pods_repo.rb
|
107
|
+
- lib/podsorz/core/PodsOrz/pods_version.rb
|
108
|
+
- lib/podsorz/core/Specs/podspec_model.rb
|
89
109
|
- lib/podsorz/util/git_operator.rb
|
90
110
|
- lib/podsorz/util/logger.rb
|
91
111
|
- lib/podsorz/util/process_operator.rb
|