cocoapods-mtxx-bin 0.0.13 → 1.0.0
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/lib/cocoapods-mtxx-bin/command/bin/buildAll.rb +45 -23
- data/lib/cocoapods-mtxx-bin/command/bin/init.rb +14 -36
- data/lib/cocoapods-mtxx-bin/command/bin/lock/dependency.rb +82 -0
- data/lib/cocoapods-mtxx-bin/command/bin/lock/spec_repo.rb +105 -0
- data/lib/cocoapods-mtxx-bin/command/bin/lock/version.rb +41 -0
- data/lib/cocoapods-mtxx-bin/command/bin/lock.rb +36 -0
- data/lib/cocoapods-mtxx-bin/command/bin/outputSource.rb +18 -11
- data/lib/cocoapods-mtxx-bin/command/bin/upload.rb +2 -2
- data/lib/cocoapods-mtxx-bin/command/bin.rb +11 -12
- data/lib/cocoapods-mtxx-bin/config/config.rb +24 -49
- data/lib/cocoapods-mtxx-bin/config/config_asker.rb +1 -4
- data/lib/cocoapods-mtxx-bin/gem_version.rb +1 -1
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/bin_helper.rb +11 -0
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/builder.rb +44 -39
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/podspec_util.rb +11 -8
- data/lib/cocoapods-mtxx-bin/helpers/buildAll/zip_file_helper.rb +17 -13
- data/lib/cocoapods-mtxx-bin/helpers/pod_size_helper.rb +30 -12
- data/lib/cocoapods-mtxx-bin/native/installer.rb +8 -7
- data/lib/cocoapods-mtxx-bin/native/podfile.rb +8 -0
- data/lib/cocoapods-mtxx-bin/native/podfile_env.rb +1 -0
- data/lib/cocoapods-mtxx-bin/native/resolver.rb +31 -32
- data/lib/cocoapods-mtxx-bin/native/sources_manager.rb +2 -1
- data/lib/cocoapods-mtxx-bin/source_provider_hook.rb +4 -2
- metadata +6 -6
- data/lib/cocoapods-mtxx-bin/command/bin/imy.rb +0 -45
- data/lib/cocoapods-mtxx-bin/command/bin/initHotKey.rb +0 -70
- data/lib/cocoapods-mtxx-bin/config/config_hot_key.rb +0 -103
- data/lib/cocoapods-mtxx-bin/config/config_hot_key_asker.rb +0 -57
@@ -6,7 +6,7 @@ require 'cocoapods-mtxx-bin/native/podfile'
|
|
6
6
|
require 'cocoapods-mtxx-bin/native/sources_manager'
|
7
7
|
require 'cocoapods-mtxx-bin/native/installation_options'
|
8
8
|
require 'cocoapods-mtxx-bin/gem_version'
|
9
|
-
require 'cocoapods-mtxx-bin/command/bin/archive'
|
9
|
+
# require 'cocoapods-mtxx-bin/command/bin/archive'
|
10
10
|
require 'cocoapods-mtxx-bin/helpers/buildAll/bin_helper'
|
11
11
|
require 'cocoapods-mtxx-bin/config/config'
|
12
12
|
|
@@ -91,8 +91,7 @@ module Pod
|
|
91
91
|
|
92
92
|
# 读取黑名单
|
93
93
|
def read_black_list
|
94
|
-
|
95
|
-
config_file = File.join(binary_dir, 'BinConfig.yaml')
|
94
|
+
config_file = File.join(Pod::Config.instance.project_root, 'BinConfig.yaml')
|
96
95
|
return nil unless File.exist?(config_file)
|
97
96
|
config = YAML.load(File.open(config_file))
|
98
97
|
return nil if config.nil?
|
@@ -232,35 +231,35 @@ module Pod
|
|
232
231
|
end.compact
|
233
232
|
end
|
234
233
|
|
235
|
-
if missing_binary_specs.any?
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
end
|
234
|
+
# if missing_binary_specs.any?
|
235
|
+
# missing_binary_specs.uniq.each do |spec|
|
236
|
+
# # UI.message "【#{spec.name} | #{spec.version}】组件无对应二进制版本 , 将采用源码依赖." unless spec.root.source[:type] == 'zip'
|
237
|
+
# end
|
238
|
+
# # 下面的代码为了实现 auto 命令的 --all-make
|
239
|
+
# Pod::Command::Bin::Archive.missing_binary_specs(missing_binary_specs)
|
240
|
+
# #缓存没有二进制组件到spec文件,local_psec_dir 目录
|
241
|
+
# sources_sepc = []
|
242
|
+
# des_dir = CBin::Config::Builder.instance.local_psec_dir
|
243
|
+
# FileUtils.rm_f(des_dir) if File.exist?des_dir
|
244
|
+
# Dir.mkdir des_dir unless File.exist?des_dir
|
245
|
+
# missing_binary_specs.uniq.each do |spec|
|
246
|
+
# # 排除subspec
|
247
|
+
# next if spec.name.include?('/')
|
248
|
+
#
|
249
|
+
# spec_git_res = false
|
250
|
+
# CBin::Config::Builder.instance.ignore_git_list.each do |ignore_git|
|
251
|
+
# spec_git_res = spec.source[:git] && spec.source[:git].include?(ignore_git)
|
252
|
+
# break if spec_git_res
|
253
|
+
# end
|
254
|
+
# next if spec_git_res
|
255
|
+
#
|
256
|
+
# #获取没有制作二进制版本的spec集合
|
257
|
+
# sources_sepc << spec
|
258
|
+
# unless spec.defined_in_file.nil?
|
259
|
+
# FileUtils.cp("#{spec.defined_in_file}", "#{des_dir}")
|
260
|
+
# end
|
261
|
+
# end
|
262
|
+
# end
|
264
263
|
|
265
264
|
specs_by_target
|
266
265
|
end
|
@@ -8,7 +8,8 @@ module Pod
|
|
8
8
|
class Manager
|
9
9
|
# 源码 source list
|
10
10
|
def code_source_list
|
11
|
-
|
11
|
+
[]
|
12
|
+
# CBin.config.code_repo_url_list.split(";").map { |source| source_with_name_or_url(source)}
|
12
13
|
end
|
13
14
|
# 二进制 source
|
14
15
|
def binary_source
|
@@ -6,6 +6,9 @@ require 'yaml'
|
|
6
6
|
|
7
7
|
Pod::HooksManager.register('cocoapods-mtxx-bin', :pre_install) do |_context, _|
|
8
8
|
require 'cocoapods-mtxx-bin/native'
|
9
|
+
require 'cocoapods-mtxx-bin/helpers/buildAll/bin_helper'
|
10
|
+
|
11
|
+
Pod::UI.puts "当前configuration: `#{CBin::BuildAll::BinHelper.configuration}`".green
|
9
12
|
|
10
13
|
# pod bin repo update 更新二进制私有源
|
11
14
|
Pod::Command::Bin::Repo::Update.new(CLAide::ARGV.new($ARGV)).run
|
@@ -45,8 +48,7 @@ Pod::HooksManager.register('cocoapods-mtxx-bin', :source_provider) do |context,
|
|
45
48
|
podfile = Pod::Config.instance.podfile
|
46
49
|
if podfile
|
47
50
|
# 读取配置文件
|
48
|
-
|
49
|
-
config_file = File.join(project_root, 'BinConfig.yaml')
|
51
|
+
config_file = File.join(Pod::Config.instance.project_root, 'BinConfig.yaml')
|
50
52
|
if File.exist?(config_file)
|
51
53
|
config = YAML.load(File.open(config_file))
|
52
54
|
unless config.nil?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-mtxx-bin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -103,11 +103,13 @@ files:
|
|
103
103
|
- lib/cocoapods-mtxx-bin/command/bin/auto.rb
|
104
104
|
- lib/cocoapods-mtxx-bin/command/bin/buildAll.rb
|
105
105
|
- lib/cocoapods-mtxx-bin/command/bin/code.rb
|
106
|
-
- lib/cocoapods-mtxx-bin/command/bin/imy.rb
|
107
106
|
- lib/cocoapods-mtxx-bin/command/bin/init.rb
|
108
|
-
- lib/cocoapods-mtxx-bin/command/bin/initHotKey.rb
|
109
107
|
- lib/cocoapods-mtxx-bin/command/bin/install.rb
|
110
108
|
- lib/cocoapods-mtxx-bin/command/bin/lib/lint.rb
|
109
|
+
- lib/cocoapods-mtxx-bin/command/bin/lock.rb
|
110
|
+
- lib/cocoapods-mtxx-bin/command/bin/lock/dependency.rb
|
111
|
+
- lib/cocoapods-mtxx-bin/command/bin/lock/spec_repo.rb
|
112
|
+
- lib/cocoapods-mtxx-bin/command/bin/lock/version.rb
|
111
113
|
- lib/cocoapods-mtxx-bin/command/bin/outputSource.rb
|
112
114
|
- lib/cocoapods-mtxx-bin/command/bin/repo.rb
|
113
115
|
- lib/cocoapods-mtxx-bin/command/bin/repo/push.rb
|
@@ -120,8 +122,6 @@ files:
|
|
120
122
|
- lib/cocoapods-mtxx-bin/config/config.rb
|
121
123
|
- lib/cocoapods-mtxx-bin/config/config_asker.rb
|
122
124
|
- lib/cocoapods-mtxx-bin/config/config_builder.rb
|
123
|
-
- lib/cocoapods-mtxx-bin/config/config_hot_key.rb
|
124
|
-
- lib/cocoapods-mtxx-bin/config/config_hot_key_asker.rb
|
125
125
|
- lib/cocoapods-mtxx-bin/gem_version.rb
|
126
126
|
- lib/cocoapods-mtxx-bin/helpers.rb
|
127
127
|
- lib/cocoapods-mtxx-bin/helpers/Info.plist
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'cocoapods-mtxx-bin/config/config_hot_key_asker'
|
2
|
-
|
3
|
-
module Pod
|
4
|
-
class Command
|
5
|
-
class Bin < Command
|
6
|
-
class Imy < Bin
|
7
|
-
self.summary = '设置快捷键'
|
8
|
-
self.description = <<-DESC
|
9
|
-
设置快捷键
|
10
|
-
DESC
|
11
|
-
|
12
|
-
self.arguments = [
|
13
|
-
CLAide::Argument.new('1', false)
|
14
|
-
]
|
15
|
-
|
16
|
-
def self.options
|
17
|
-
[
|
18
|
-
].concat(super)
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(argv)
|
22
|
-
@hot_key = argv.shift_argument || '1'
|
23
|
-
super
|
24
|
-
end
|
25
|
-
|
26
|
-
def run
|
27
|
-
CBin.config_hot_key.set_hot_key_index(@hot_key)
|
28
|
-
UI.puts "cd #{CBin.config_hot_key.hot_key_dir}".yellow
|
29
|
-
|
30
|
-
if Dir.exist?(CBin.config_hot_key.hot_key_dir)
|
31
|
-
Dir.chdir(CBin.config_hot_key.hot_key_dir) do
|
32
|
-
UI.puts " #{CBin.config_hot_key.hot_key_cmd}".yellow
|
33
|
-
system CBin.config_hot_key.hot_key_cmd
|
34
|
-
end
|
35
|
-
else
|
36
|
-
raise "配置项中文件目录不存在 #{CBin.config_hot_key.hot_key_dir}"
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,70 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'cocoapods-mtxx-bin/config/config_hot_key_asker'
|
3
|
-
|
4
|
-
module Pod
|
5
|
-
class Command
|
6
|
-
class Bin < Command
|
7
|
-
class Inithk < Bin
|
8
|
-
self.summary = '初始化快捷键配置'
|
9
|
-
self.description = <<-DESC
|
10
|
-
创建 文件,在其中保存插件需要的配置信息,
|
11
|
-
如二进制私有源地址、源码私有源地址等。
|
12
|
-
DESC
|
13
|
-
|
14
|
-
def self.options
|
15
|
-
[
|
16
|
-
['--bin-url=URL', '配置文件地址,直接从此地址下载配置文件']
|
17
|
-
].concat(super)
|
18
|
-
end
|
19
|
-
|
20
|
-
def initialize(argv)
|
21
|
-
@bin_url = argv.option('bin-url')
|
22
|
-
super
|
23
|
-
end
|
24
|
-
|
25
|
-
def run
|
26
|
-
if @bin_url.nil?
|
27
|
-
config_with_asker
|
28
|
-
else
|
29
|
-
config_with_url(@bin_url)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def config_with_url(url)
|
36
|
-
require 'open-uri'
|
37
|
-
|
38
|
-
UI.puts "开始下载配置文件...\n"
|
39
|
-
file = open(url)
|
40
|
-
contents = YAML.safe_load(file.read)
|
41
|
-
|
42
|
-
UI.puts "开始同步配置文件...\n"
|
43
|
-
CBin.config_hot_key.sync_config(contents.to_hash)
|
44
|
-
UI.puts "设置完成.\n".green
|
45
|
-
rescue Errno::ENOENT => e
|
46
|
-
raise Informative, "配置文件路径 #{url} 无效,请确认后重试."
|
47
|
-
end
|
48
|
-
|
49
|
-
def config_with_asker
|
50
|
-
asker = CBin::Config_Hot_Key::Asker.new
|
51
|
-
asker.wellcome_message
|
52
|
-
|
53
|
-
config = {}
|
54
|
-
template_hash = CBin.config_hot_key.template_hash
|
55
|
-
template_hash.each do |k, v|
|
56
|
-
default = begin
|
57
|
-
CBin.config_hot_key.send(k)
|
58
|
-
rescue StandardError
|
59
|
-
nil
|
60
|
-
end
|
61
|
-
config[k] = asker.ask_with_answer(v[:description], default, v[:selection])
|
62
|
-
end
|
63
|
-
|
64
|
-
CBin.config_hot_key.sync_config(config)
|
65
|
-
asker.done_message
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'cocoapods-mtxx-bin/native/podfile'
|
3
|
-
require 'cocoapods-mtxx-bin/native/podfile_env'
|
4
|
-
require 'cocoapods/generate'
|
5
|
-
|
6
|
-
module CBin
|
7
|
-
class Config_Hot_Key
|
8
|
-
|
9
|
-
def config_file
|
10
|
-
config_file_with_hot_key_index(hot_key_index)
|
11
|
-
end
|
12
|
-
|
13
|
-
def template_hash
|
14
|
-
{
|
15
|
-
'hot_key_index' => { description: '快捷键', default: '1', selection: %w[1 2 3...] },
|
16
|
-
'hot_key_dir' => { description: '快捷键执行目录', default: '' },
|
17
|
-
'hot_key_cmd' => { description: '快捷键执行命令', default: 'pod bin update --no-repo-update' }
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
21
|
-
def config_file_with_hot_key_index(hot_key_index)
|
22
|
-
file = config_file_whith_hot_key_index(hot_key_index)
|
23
|
-
raise "\n===== #{hot_key_index} 参数有误,请检查%w[1 2 3...]===" unless (hot_key_index.to_i).is_a?(Integer)
|
24
|
-
File.expand_path("#{Pod::Config.instance.home_dir}/#{file}")
|
25
|
-
end
|
26
|
-
|
27
|
-
def hot_key_index
|
28
|
-
@hot_key_index = 1 if @hot_key_index.is_a?(NilClass)
|
29
|
-
@hot_key_index
|
30
|
-
end
|
31
|
-
|
32
|
-
def set_hot_key_index(hot_key_index)
|
33
|
-
@hot_key_index = hot_key_index
|
34
|
-
end
|
35
|
-
|
36
|
-
def config_file_whith_hot_key_index(hot_key_index)
|
37
|
-
"hot_key_#{hot_key_index}.yml"
|
38
|
-
end
|
39
|
-
|
40
|
-
def sync_config(config)
|
41
|
-
File.open(config_file_with_hot_key_index(config['hot_key_index']), 'w+') do |f|
|
42
|
-
f.write(config.to_yaml)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def default_config
|
47
|
-
@default_config ||= Hash[template_hash.map { |k, v| [k, v[:default]] }]
|
48
|
-
end
|
49
|
-
|
50
|
-
private
|
51
|
-
|
52
|
-
def load_config
|
53
|
-
file = config_file
|
54
|
-
if (!file.nil?) && File.exist?(config_file)
|
55
|
-
YAML.load_file(config_file)
|
56
|
-
else
|
57
|
-
default_config
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def config
|
62
|
-
@config ||= begin
|
63
|
-
puts "====== cocoapods-mtxx-bin #{CBin::VERSION} 版本 ======== \n"
|
64
|
-
@config = OpenStruct.new load_config
|
65
|
-
validate!
|
66
|
-
@config
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def validate!
|
71
|
-
template_hash.each do |k, v|
|
72
|
-
selection = v[:selection]
|
73
|
-
next if !selection || selection.empty?
|
74
|
-
|
75
|
-
config_value = @config.send(k)
|
76
|
-
next unless config_value
|
77
|
-
unless selection.include?(config_value)
|
78
|
-
raise Pod::Informative, "#{k} 字段的值必须限定在可选值 [ #{selection.join(' / ')} ] 内".red
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def respond_to_missing?(method, include_private = false)
|
84
|
-
config.respond_to?(method) || super
|
85
|
-
end
|
86
|
-
|
87
|
-
def method_missing(method, *args, &block)
|
88
|
-
if config.respond_to?(method)
|
89
|
-
config.send(method, *args)
|
90
|
-
elsif template_hash.keys.include?(method.to_s)
|
91
|
-
raise Pod::Informative, "#{method} 字段必须在配置文件 #{config_file} 中设置, 请执行 init 命令配置或手动修改配置文件".red
|
92
|
-
else
|
93
|
-
super
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def self.config_hot_key
|
99
|
-
@config_hot_key ||= Config_Hot_Key.new
|
100
|
-
end
|
101
|
-
|
102
|
-
end
|
103
|
-
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'cocoapods-mtxx-bin/config/config_hot_key'
|
3
|
-
|
4
|
-
module CBin
|
5
|
-
class Config_Hot_Key
|
6
|
-
class Asker
|
7
|
-
def show_prompt
|
8
|
-
print ' > '.green
|
9
|
-
end
|
10
|
-
|
11
|
-
def ask_with_answer(question, pre_answer, selection)
|
12
|
-
print "\n#{question}\n"
|
13
|
-
|
14
|
-
print_selection_info = lambda {
|
15
|
-
print "可选值:[ #{selection.join(' / ')} ]\n" if selection
|
16
|
-
}
|
17
|
-
print_selection_info.call
|
18
|
-
print "旧值:#{pre_answer}\n" unless pre_answer.nil?
|
19
|
-
|
20
|
-
answer = ''
|
21
|
-
loop do
|
22
|
-
show_prompt
|
23
|
-
answer = STDIN.gets.chomp.strip
|
24
|
-
|
25
|
-
if answer == '' && !pre_answer.nil?
|
26
|
-
answer = pre_answer
|
27
|
-
print answer.yellow
|
28
|
-
print "\n"
|
29
|
-
end
|
30
|
-
|
31
|
-
next if answer.empty?
|
32
|
-
break if !selection || selection.include?(answer)
|
33
|
-
|
34
|
-
print_selection_info.call
|
35
|
-
end
|
36
|
-
|
37
|
-
answer
|
38
|
-
end
|
39
|
-
|
40
|
-
def wellcome_message
|
41
|
-
print <<~EOF
|
42
|
-
|
43
|
-
开始设置快捷键 pod bin imy.
|
44
|
-
所有的信息都会保存在 #{CBin.config_hot_key.config_file} 文件中.
|
45
|
-
%w[hot_key.yaml]
|
46
|
-
你可以在对应目录下手动添加编辑该文件. 文件包含的配置信息样式如下:
|
47
|
-
|
48
|
-
#{CBin.config_hot_key.default_config.to_yaml}
|
49
|
-
EOF
|
50
|
-
end
|
51
|
-
|
52
|
-
def done_message
|
53
|
-
print "\n设置完成.\n".green
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|