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.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -13
  3. data/lib/podsorz.rb +12 -2
  4. data/lib/podsorz/command/binary.rb +150 -0
  5. data/lib/podsorz/command/commit.rb +2 -2
  6. data/lib/podsorz/command/install.rb +9 -3
  7. data/lib/podsorz/command/publish.rb +7 -3
  8. data/lib/podsorz/command/setup.rb +1 -1
  9. data/lib/podsorz/command/switch.rb +2 -2
  10. data/lib/podsorz/command/sync.rb +2 -2
  11. data/lib/podsorz/core/Binary/binary_builder.rb +312 -0
  12. data/lib/podsorz/core/Binary/binary_manager.rb +173 -0
  13. data/lib/podsorz/core/Binary/binary_repo.rb +178 -0
  14. data/lib/podsorz/core/Binary/binary_server.rb +21 -0
  15. data/lib/podsorz/core/Config/orz_config_templet.rb +31 -0
  16. data/lib/podsorz/core/{orz_env_detector.rb → Config/orz_env_detector.rb} +1 -1
  17. data/lib/podsorz/core/{pod_orzconfig_parse.rb → Config/pod_orzconfig_parse.rb} +15 -1
  18. data/lib/podsorz/core/{podfile_io.rb → PodFile/podfile_io.rb} +143 -4
  19. data/lib/podsorz/core/{podfile_model.rb → PodFile/podfile_model.rb} +26 -1
  20. data/lib/podsorz/core/{pods_detector.rb → PodsOrz/pods_detector.rb} +1 -1
  21. data/lib/podsorz/core/{pods_git_manager.rb → PodsOrz/pods_git_manager.rb} +22 -12
  22. data/lib/podsorz/core/{pods_git_operator.rb → PodsOrz/pods_git_operator.rb} +134 -37
  23. data/lib/podsorz/core/{pods_repo.rb → PodsOrz/pods_repo.rb} +44 -11
  24. data/lib/podsorz/core/{pods_version.rb → PodsOrz/pods_version.rb} +4 -1
  25. data/lib/podsorz/core/Specs/podspec_model.rb +45 -0
  26. data/lib/podsorz/util/git_operator.rb +47 -0
  27. data/lib/podsorz/version.rb +1 -1
  28. data/podsorz.gemspec +11 -1
  29. metadata +35 -15
  30. data/Note +0 -3
  31. 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 kuxiu_specs")
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/kuxiu_specs"
111
+ dir_kuxiu_specs = "#{Dir.home}/.cocoapods/repos/#{@repo_name}"
86
112
  dir_pod_path = File.expand_path("#{pod}", dir_kuxiu_specs)
87
- is_dir_exit = File.directory?(dir_pod_path)
113
+ is_dir_exist = File.directory?(dir_pod_path)
88
114
 
89
- unless is_dir_exit
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
- repo_push_cmd << "pod repo push #{@repo_name} #{pod}.podspec --allow-warnings --use-libraries --skip-import-validation --sources=#{@repo_url}"
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
- next if l.start_with?("#")
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
 
@@ -1,3 +1,3 @@
1
1
  module PodsOrz
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.7"
3
3
  end
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 = %q{iOS application modulize into pods, improvement for develop modules. CMD: git-flow, auto publish code, auto push repo, auto rewrite podfile}
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.2
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 00:00:00.000000000 Z
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
- description: 'iOS application modulize into pods, improvement for develop modules.
56
- CMD: git-flow, auto publish code, auto push repo, auto rewrite podfile'
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/orz_config_templet.rb
80
- - lib/podsorz/core/orz_env_detector.rb
81
- - lib/podsorz/core/pod_orzconfig_parse.rb
82
- - lib/podsorz/core/podfile_io.rb
83
- - lib/podsorz/core/podfile_model.rb
84
- - lib/podsorz/core/pods_detector.rb
85
- - lib/podsorz/core/pods_git_manager.rb
86
- - lib/podsorz/core/pods_git_operator.rb
87
- - lib/podsorz/core/pods_repo.rb
88
- - lib/podsorz/core/pods_version.rb
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
data/Note DELETED
@@ -1,3 +0,0 @@
1
-
2
- gem build
3
- gem push
@@ -1,13 +0,0 @@
1
- module GitConfig
2
- #App 当前版本
3
- APP_RELEASE_VERSION = "2.0.8"
4
-
5
- #作者姓名xiangqi简写
6
- BRANCH_AUTHOR_SUFFIX = "xq"
7
- end
8
-
9
- #想要开发修改的的Pod
10
- $FIX_POD_LIST = [
11
- # "KXModuleOrz",
12
- # "KXModuleQuestionRepo",
13
- ]