cocoapods-tdf-bin 0.0.1.1
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 +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +103 -0
- data/lib/cocoapods-tdf-bin.rb +2 -0
- data/lib/cocoapods-tdf-bin/command.rb +2 -0
- data/lib/cocoapods-tdf-bin/command/bin.rb +57 -0
- data/lib/cocoapods-tdf-bin/command/bin/archive.rb +222 -0
- data/lib/cocoapods-tdf-bin/command/bin/auto.rb +216 -0
- data/lib/cocoapods-tdf-bin/command/bin/code.rb +232 -0
- data/lib/cocoapods-tdf-bin/command/bin/imy.rb +46 -0
- data/lib/cocoapods-tdf-bin/command/bin/init.rb +69 -0
- data/lib/cocoapods-tdf-bin/command/bin/initHotKey.rb +70 -0
- data/lib/cocoapods-tdf-bin/command/bin/install.rb +44 -0
- data/lib/cocoapods-tdf-bin/command/bin/lib/lint.rb +69 -0
- data/lib/cocoapods-tdf-bin/command/bin/repo/update.rb +43 -0
- data/lib/cocoapods-tdf-bin/command/bin/spec/create.rb +73 -0
- data/lib/cocoapods-tdf-bin/command/bin/spec/push.rb +114 -0
- data/lib/cocoapods-tdf-bin/command/bin/update.rb +157 -0
- data/lib/cocoapods-tdf-bin/config/config.rb +138 -0
- data/lib/cocoapods-tdf-bin/config/config_asker.rb +57 -0
- data/lib/cocoapods-tdf-bin/config/config_builder.rb +238 -0
- data/lib/cocoapods-tdf-bin/config/config_hot_key.rb +103 -0
- data/lib/cocoapods-tdf-bin/config/config_hot_key_asker.rb +57 -0
- data/lib/cocoapods-tdf-bin/gem_version.rb +10 -0
- data/lib/cocoapods-tdf-bin/helpers.rb +5 -0
- data/lib/cocoapods-tdf-bin/helpers/Info.plist +0 -0
- data/lib/cocoapods-tdf-bin/helpers/build_helper.rb +162 -0
- data/lib/cocoapods-tdf-bin/helpers/build_utils.rb +101 -0
- data/lib/cocoapods-tdf-bin/helpers/framework.rb +85 -0
- data/lib/cocoapods-tdf-bin/helpers/framework_builder.rb +283 -0
- data/lib/cocoapods-tdf-bin/helpers/library.rb +54 -0
- data/lib/cocoapods-tdf-bin/helpers/library_builder.rb +90 -0
- data/lib/cocoapods-tdf-bin/helpers/sources_helper.rb +36 -0
- data/lib/cocoapods-tdf-bin/helpers/spec_creator.rb +168 -0
- data/lib/cocoapods-tdf-bin/helpers/spec_files_helper.rb +77 -0
- data/lib/cocoapods-tdf-bin/helpers/spec_source_creator.rb +228 -0
- data/lib/cocoapods-tdf-bin/helpers/upload_helper.rb +89 -0
- data/lib/cocoapods-tdf-bin/native.rb +23 -0
- data/lib/cocoapods-tdf-bin/native/acknowledgements.rb +27 -0
- data/lib/cocoapods-tdf-bin/native/analyzer.rb +55 -0
- data/lib/cocoapods-tdf-bin/native/configuration.rb +26 -0
- data/lib/cocoapods-tdf-bin/native/file_accessor.rb +28 -0
- data/lib/cocoapods-tdf-bin/native/installation_options.rb +25 -0
- data/lib/cocoapods-tdf-bin/native/installer.rb +135 -0
- data/lib/cocoapods-tdf-bin/native/linter.rb +26 -0
- data/lib/cocoapods-tdf-bin/native/path_source.rb +33 -0
- data/lib/cocoapods-tdf-bin/native/pod_source_installer.rb +19 -0
- data/lib/cocoapods-tdf-bin/native/pod_target_installer.rb +94 -0
- data/lib/cocoapods-tdf-bin/native/podfile.rb +91 -0
- data/lib/cocoapods-tdf-bin/native/podfile_env.rb +37 -0
- data/lib/cocoapods-tdf-bin/native/podfile_generator.rb +199 -0
- data/lib/cocoapods-tdf-bin/native/podspec_finder.rb +25 -0
- data/lib/cocoapods-tdf-bin/native/resolver.rb +243 -0
- data/lib/cocoapods-tdf-bin/native/sandbox_analyzer.rb +34 -0
- data/lib/cocoapods-tdf-bin/native/source.rb +35 -0
- data/lib/cocoapods-tdf-bin/native/sources_manager.rb +20 -0
- data/lib/cocoapods-tdf-bin/native/specification.rb +31 -0
- data/lib/cocoapods-tdf-bin/native/target_validator.rb +41 -0
- data/lib/cocoapods-tdf-bin/native/validator.rb +40 -0
- data/lib/cocoapods-tdf-bin/source_provider_hook.rb +54 -0
- data/lib/cocoapods_plugin.rb +3 -0
- data/spec/command/bin_spec.rb +12 -0
- data/spec/spec_helper.rb +50 -0
- metadata +179 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'cocoapods-tdf-bin/config/config'
|
2
|
+
require 'cocoapods-tdf-bin/native/podfile'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Command
|
6
|
+
class Bin < Command
|
7
|
+
class Lib < Bin
|
8
|
+
class Lint < Lib
|
9
|
+
self.summary = 'lint 组件.'
|
10
|
+
self.description = <<-DESC
|
11
|
+
lint 二进制组件 / 源码组件
|
12
|
+
DESC
|
13
|
+
|
14
|
+
self.arguments = [
|
15
|
+
CLAide::Argument.new('NAME.podspec', false)
|
16
|
+
]
|
17
|
+
|
18
|
+
# lib lint 不会下载 source,所以不能进行二进制 lint
|
19
|
+
# 要 lint 二进制版本,需要进行 spec lint,此 lint 会去下载 source
|
20
|
+
def self.options
|
21
|
+
[
|
22
|
+
['--code-dependencies', '使用源码依赖进行 lint'],
|
23
|
+
['--loose-options', '添加宽松的 options, 包括 --use-libraries (可能会造成 entry point (start) undefined)'],
|
24
|
+
['--allow-prerelease', '允许使用 prerelease 的版本 lint']
|
25
|
+
].concat(Pod::Command::Lib::Lint.options).concat(super).uniq
|
26
|
+
end
|
27
|
+
|
28
|
+
def initialize(argv)
|
29
|
+
@loose_options = argv.flag?('loose-options')
|
30
|
+
@code_dependencies = argv.flag?('code-dependencies')
|
31
|
+
@sources = argv.option('sources') || []
|
32
|
+
@allow_prerelease = argv.flag?('allow-prerelease')
|
33
|
+
@podspec = argv.shift_argument
|
34
|
+
super
|
35
|
+
|
36
|
+
@additional_args = argv.remainder!
|
37
|
+
end
|
38
|
+
|
39
|
+
def run
|
40
|
+
Podfile.execute_with_bin_plugin do
|
41
|
+
Podfile.execute_with_allow_prerelease(@allow_prerelease) do
|
42
|
+
Podfile.execute_with_use_binaries(!@code_dependencies) do
|
43
|
+
argvs = [
|
44
|
+
@podspec || code_spec_files.first,
|
45
|
+
"--sources=#{sources_option(@code_dependencies, @sources)}",
|
46
|
+
*@additional_args
|
47
|
+
]
|
48
|
+
|
49
|
+
if @loose_options
|
50
|
+
argvs << '--allow-warnings'
|
51
|
+
if code_spec&.all_dependencies&.any?
|
52
|
+
argvs << '--use-libraries'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
lint = Pod::Command::Lib::Lint.new(CLAide::ARGV.new(argvs))
|
57
|
+
lint.validate!
|
58
|
+
lint.run
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'parallel'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
class Command
|
5
|
+
class Bin < Command
|
6
|
+
class Repo < Bin
|
7
|
+
class Update < Repo
|
8
|
+
self.summary = '更新私有源'
|
9
|
+
|
10
|
+
self.arguments = [
|
11
|
+
CLAide::Argument.new('NAME', false)
|
12
|
+
]
|
13
|
+
|
14
|
+
def self.options
|
15
|
+
[
|
16
|
+
['--all', '更新所有私有源,默认只更新二进制相关私有源']
|
17
|
+
].concat(super)
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(argv)
|
21
|
+
@all = argv.flag?('all')
|
22
|
+
@name = argv.shift_argument
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
26
|
+
def run
|
27
|
+
show_output = !config.silent?
|
28
|
+
if @name || @all
|
29
|
+
config.sources_manager.update(@name, show_output)
|
30
|
+
else
|
31
|
+
Parallel.each(valid_sources, in_threads: 4) do |source|
|
32
|
+
UI.puts "更新私有源仓库 #{source.to_s}".yellow
|
33
|
+
source.update(show_output)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'cocoapods-tdf-bin/helpers'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
class Command
|
5
|
+
class Bin < Command
|
6
|
+
class Spec < Bin
|
7
|
+
class Create < Spec
|
8
|
+
self.summary = '创建二进制 spec.'
|
9
|
+
self.description = <<-DESC
|
10
|
+
根据源码 podspec 文件,创建对应的二进制 podspec 文件.
|
11
|
+
DESC
|
12
|
+
|
13
|
+
def self.options
|
14
|
+
[
|
15
|
+
['--platforms=ios', '生成二进制 spec 支持的平台'],
|
16
|
+
['--template-podspec=A.binary-template.podspec', '生成拥有 subspec 的二进制 spec 需要的模版 podspec, 插件会更改 version 和 source'],
|
17
|
+
['--no-overwrite', '不允许覆盖']
|
18
|
+
].concat(super)
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(argv)
|
22
|
+
@platforms = argv.option('platforms', 'ios')
|
23
|
+
@allow_overwrite = argv.flag?('overwrite', true)
|
24
|
+
@template_podspec = argv.option('template-podspec')
|
25
|
+
@podspec = argv.shift_argument
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
def run
|
30
|
+
UI.puts "开始读取 podspec 文件...\n"
|
31
|
+
|
32
|
+
code_spec = Pod::Specification.from_file(spec_file)
|
33
|
+
if template_spec_file
|
34
|
+
template_spec = Pod::Specification.from_file(template_spec_file)
|
35
|
+
end
|
36
|
+
|
37
|
+
if binary_spec && !@allow_overwrite
|
38
|
+
UI.warn "二进制 podspec 文件 #{binary_spec_files.first} 已存在.\n"
|
39
|
+
else
|
40
|
+
UI.puts "开始生成二进制 podspec 文件...\n"
|
41
|
+
spec_file = create_binary_spec_file(code_spec, template_spec)
|
42
|
+
UI.puts "创建二进制 podspec 文件 #{spec_file} 成功.\n".green
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def template_spec_file
|
47
|
+
@template_spec_file ||= begin
|
48
|
+
if @template_podspec
|
49
|
+
find_spec_file(@template_podspec)
|
50
|
+
else
|
51
|
+
binary_template_spec_file
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def spec_file
|
57
|
+
@spec_file ||= begin
|
58
|
+
if @podspec
|
59
|
+
find_spec_file(@podspec)
|
60
|
+
else
|
61
|
+
if code_spec_files.empty?
|
62
|
+
raise Informative, '当前目录下没有找到可用源码 podspec.'
|
63
|
+
end
|
64
|
+
|
65
|
+
code_spec_files.first
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'cocoapods-tdf-bin/config/config'
|
2
|
+
require 'cocoapods-tdf-bin/native/podfile'
|
3
|
+
|
4
|
+
module Pod
|
5
|
+
class Command
|
6
|
+
class Bin < Command
|
7
|
+
class Repo < Bin
|
8
|
+
class Push < Repo
|
9
|
+
self.summary = '发布组件.'
|
10
|
+
self.description = <<-DESC
|
11
|
+
发布二进制组件 / 源码组件
|
12
|
+
DESC
|
13
|
+
|
14
|
+
self.arguments = [
|
15
|
+
CLAide::Argument.new('NAME.podspec', false)
|
16
|
+
]
|
17
|
+
|
18
|
+
def self.options
|
19
|
+
[
|
20
|
+
['--binary', '发布组件的二进制版本'],
|
21
|
+
['--template-podspec=A.binary-template.podspec', '生成拥有 subspec 的二进制 spec 需要的模版 podspec, 插件会更改 version 和 source'],
|
22
|
+
['--reserve-created-spec', '保留生成的二进制 spec 文件'],
|
23
|
+
['--code-dependencies', '使用源码依赖进行 lint'],
|
24
|
+
['--loose-options', '添加宽松的 options, 包括 --use-libraries (可能会造成 entry point (start) undefined)'],
|
25
|
+
['--allow-prerelease', '允许使用 prerelease 的版本 lint']
|
26
|
+
].concat(Pod::Command::Repo::Push.options).concat(super).uniq
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize(argv)
|
30
|
+
@podspec = argv.shift_argument
|
31
|
+
@binary = argv.flag?('binary')
|
32
|
+
@loose_options = argv.flag?('loose-options')
|
33
|
+
@code_dependencies = argv.flag?('code-dependencies')
|
34
|
+
@sources = argv.option('sources') || []
|
35
|
+
@reserve_created_spec = argv.flag?('reserve-created-spec')
|
36
|
+
@template_podspec = argv.option('template-podspec')
|
37
|
+
@allow_prerelease = argv.flag?('allow-prerelease')
|
38
|
+
super
|
39
|
+
|
40
|
+
@additional_args = argv.remainder!
|
41
|
+
end
|
42
|
+
|
43
|
+
def run
|
44
|
+
Podfile.execute_with_bin_plugin do
|
45
|
+
Podfile.execute_with_allow_prerelease(@allow_prerelease) do
|
46
|
+
Podfile.execute_with_use_binaries(!@code_dependencies) do
|
47
|
+
argvs = [
|
48
|
+
repo,
|
49
|
+
"--sources=#{sources_option(@code_dependencies, @sources)}",
|
50
|
+
*@additional_args
|
51
|
+
]
|
52
|
+
|
53
|
+
argvs << spec_file if spec_file
|
54
|
+
|
55
|
+
if @loose_options
|
56
|
+
argvs += ['--allow-warnings', '--use-json']
|
57
|
+
if code_spec&.all_dependencies&.any?
|
58
|
+
argvs << '--use-libraries'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
push = Pod::Command::Repo::Push.new(CLAide::ARGV.new(argvs))
|
63
|
+
push.validate!
|
64
|
+
push.run
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
ensure
|
69
|
+
clear_binary_spec_file_if_needed unless @reserve_created_spec
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def template_spec_file
|
75
|
+
@template_spec_file ||= begin
|
76
|
+
if @template_podspec
|
77
|
+
find_spec_file(@template_podspec)
|
78
|
+
else
|
79
|
+
binary_template_spec_file
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def spec_file
|
85
|
+
@spec_file ||= begin
|
86
|
+
if @podspec
|
87
|
+
find_spec_file(@podspec)
|
88
|
+
else
|
89
|
+
if code_spec_files.empty?
|
90
|
+
raise Informative, '当前目录下没有找到可用源码 podspec.'
|
91
|
+
end
|
92
|
+
|
93
|
+
spec_file = if @binary
|
94
|
+
code_spec = Pod::Specification.from_file(code_spec_files.first)
|
95
|
+
if template_spec_file
|
96
|
+
template_spec = Pod::Specification.from_file(template_spec_file)
|
97
|
+
end
|
98
|
+
create_binary_spec_file(code_spec, template_spec)
|
99
|
+
else
|
100
|
+
code_spec_files.first
|
101
|
+
end
|
102
|
+
spec_file
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def repo
|
108
|
+
@binary ? binary_source.name : code_source.name
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
|
2
|
+
require 'cocoapods'
|
3
|
+
require 'cocoapods-tdf-bin/native/podfile_env'
|
4
|
+
require 'cocoapods-tdf-bin/native/podfile'
|
5
|
+
|
6
|
+
module Pod
|
7
|
+
class Command
|
8
|
+
class Bin < Command
|
9
|
+
class Update < Bin
|
10
|
+
include Pod
|
11
|
+
include Pod::Podfile::DSL
|
12
|
+
|
13
|
+
self.summary = 'pod update 拦截器,会加载本地Podfile_local文件,DSL加载到原始Podfile文件中。'
|
14
|
+
|
15
|
+
self.description = <<-DESC
|
16
|
+
pod update 拦截器,会加载本地Podfile_local文件
|
17
|
+
会通过DSL加载到原始Podfile文件中
|
18
|
+
支持 pod 'xxx' 各种写法
|
19
|
+
支持 post_install/pre_install钩子,采用覆盖做法
|
20
|
+
DESC
|
21
|
+
def self.options
|
22
|
+
[
|
23
|
+
["--sources=#{Pod::TrunkSource::TRUNK_REPO_URL}", 'The sources from which to update dependent pods. ' \
|
24
|
+
'Multiple sources must be comma-delimited'],
|
25
|
+
['--exclude-pods=podName', 'Pods to exclude during update. Multiple pods must be comma-delimited'],
|
26
|
+
['--clean-install', 'Ignore the contents of the project cache and force a full pod installation. This only ' \
|
27
|
+
'applies to projects that have enabled incremental installation'],
|
28
|
+
['--project-directory=/project/dir/', 'The path to the root of the project directory'],
|
29
|
+
['--no-repo-update', 'Skip running `pod repo update` before install']
|
30
|
+
].concat(super)
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize(argv)
|
34
|
+
@update = argv.flag?('update')
|
35
|
+
super
|
36
|
+
@additional_args = argv.remainder!
|
37
|
+
end
|
38
|
+
|
39
|
+
def run
|
40
|
+
Update.load_local_podfile
|
41
|
+
|
42
|
+
argvs = [
|
43
|
+
*@additional_args
|
44
|
+
]
|
45
|
+
|
46
|
+
gen = Pod::Command::Update.new(CLAide::ARGV.new(argvs))
|
47
|
+
gen.validate!
|
48
|
+
gen.run
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.load_local_podfile
|
52
|
+
# 同步 Podfile_local 文件
|
53
|
+
project_root = Pod::Config.instance.project_root
|
54
|
+
path = File.join(project_root.to_s, 'Podfile_local')
|
55
|
+
unless File.exist?(path)
|
56
|
+
path = File.join(project_root.to_s, 'Podfile_local')
|
57
|
+
end
|
58
|
+
|
59
|
+
if File.exist?(path)
|
60
|
+
contents = File.open(path, 'r:utf-8', &:read)
|
61
|
+
|
62
|
+
podfile = Pod::Config.instance.podfile
|
63
|
+
local_podfile = Podfile.from_file(path)
|
64
|
+
|
65
|
+
if local_podfile
|
66
|
+
local_pre_install_callback = nil
|
67
|
+
local_post_install_callback = nil
|
68
|
+
local_podfile.instance_eval do
|
69
|
+
local_pre_install_callback = @pre_install_callback
|
70
|
+
local_post_install_callback = @post_install_callback
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
podfile.instance_eval do
|
75
|
+
begin
|
76
|
+
|
77
|
+
# podfile HASH_KEYS才有plugins字段,否则会被限制
|
78
|
+
if local_podfile.plugins.any?
|
79
|
+
hash_plugins = podfile.plugins || {}
|
80
|
+
hash_plugins = hash_plugins.merge(local_podfile.plugins)
|
81
|
+
set_hash_value(%w[plugins].first, hash_plugins)
|
82
|
+
|
83
|
+
# 加入源码白名单,避免本地库被二进制了
|
84
|
+
podfile.set_use_source_pods(local_podfile.use_source_pods) if local_podfile.use_source_pods
|
85
|
+
podfile.use_binaries!(local_podfile.use_binaries?)
|
86
|
+
end
|
87
|
+
|
88
|
+
# 在target把local-target中到dependencies值删除了,再设置
|
89
|
+
# 把本地和原始到dependencies 合并,设置dependencies
|
90
|
+
local_podfile&.target_definition_list&.each do |local_target|
|
91
|
+
next if local_target.name == 'Pods'
|
92
|
+
|
93
|
+
target_definition_list.each do |target|
|
94
|
+
|
95
|
+
unless target.name == local_target.name &&
|
96
|
+
(local_target.to_hash['dependencies'] &&local_target.to_hash['dependencies'].any?)
|
97
|
+
next
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
target.instance_exec do
|
103
|
+
# 在target把local-target中到dependencies值删除了,再设置
|
104
|
+
|
105
|
+
local_dependencies = local_target.to_hash['dependencies']
|
106
|
+
target_dependencies = target.to_hash['dependencies']
|
107
|
+
|
108
|
+
local_dependencies.each do |local_dependency|
|
109
|
+
unless local_dependency.is_a?(Hash) && local_dependency.keys.first
|
110
|
+
next
|
111
|
+
end
|
112
|
+
|
113
|
+
target_dependencies.each do |target_dependency|
|
114
|
+
dp_hash_equal = target_dependency.is_a?(Hash) &&
|
115
|
+
target_dependency.keys.first &&
|
116
|
+
target_dependency.keys.first == local_dependency.keys.first
|
117
|
+
dp_str_equal = target_dependency.is_a?(String) &&
|
118
|
+
target_dependency == local_dependency.keys.first
|
119
|
+
next unless dp_hash_equal || dp_str_equal
|
120
|
+
|
121
|
+
target_dependencies.delete target_dependency
|
122
|
+
break
|
123
|
+
end
|
124
|
+
end
|
125
|
+
# 把本地和原始到dependencies 合并,设置dependencies
|
126
|
+
local_dependencies.each do |d|
|
127
|
+
UI.message "Development Pod #{d.to_yaml}"
|
128
|
+
if podfile.plugins.keys.include?('cocoapods-tdf-bin')
|
129
|
+
podfile.set_use_source_pods(d.keys.first) if (d.is_a?(Hash) && d.keys.first)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
new_dependencies = target_dependencies + local_dependencies
|
133
|
+
set_hash_value(%w[dependencies].first, new_dependencies)
|
134
|
+
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
139
|
+
|
140
|
+
if local_pre_install_callback
|
141
|
+
@pre_install_callback = local_pre_install_callback
|
142
|
+
end
|
143
|
+
if local_post_install_callback
|
144
|
+
@post_install_callback = local_post_install_callback
|
145
|
+
end
|
146
|
+
rescue Exception => e
|
147
|
+
message = "Invalid `#{path}` file: #{e.message}"
|
148
|
+
raise Pod::DSLError.new(message, path, e, contents)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|