pindo 4.6.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/pindo +35 -0
- data/lib/pindo/base/aeshelper.rb +31 -0
- data/lib/pindo/base/deviceinfo.rb +90 -0
- data/lib/pindo/base/executable.rb +224 -0
- data/lib/pindo/base/githelper.rb +489 -0
- data/lib/pindo/base/hashhelper.rb +134 -0
- data/lib/pindo/base/plaininformative.rb +15 -0
- data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
- data/lib/pindo/base/standarderror.rb +14 -0
- data/lib/pindo/client/applovinclient.rb +156 -0
- data/lib/pindo/client/aws3sclient.rb +183 -0
- data/lib/pindo/client/bossclient.rb +229 -0
- data/lib/pindo/client/bossconfigclient.rb +175 -0
- data/lib/pindo/client/giteeclient.rb +65 -0
- data/lib/pindo/client/httpclient.rb +40 -0
- data/lib/pindo/client/pgyerclient.rb +439 -0
- data/lib/pindo/client/tgateclient.rb +103 -0
- data/lib/pindo/command.rb +101 -0
- data/lib/pindo/config/pindoconfig.rb +439 -0
- data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
- data/lib/pindo/deploy/Fastfile +233 -0
- data/lib/pindo/deploy/build.rb +167 -0
- data/lib/pindo/deploy/bundleid.rb +245 -0
- data/lib/pindo/deploy/cert.rb +508 -0
- data/lib/pindo/deploy/check.rb +79 -0
- data/lib/pindo/deploy/configproj.rb +89 -0
- data/lib/pindo/deploy/confusecode.rb +248 -0
- data/lib/pindo/deploy/confuseproj.rb +112 -0
- data/lib/pindo/deploy/fabric.rb +58 -0
- data/lib/pindo/deploy/getitcinfo.rb +248 -0
- data/lib/pindo/deploy/iap.rb +796 -0
- data/lib/pindo/deploy/initconfig.rb +128 -0
- data/lib/pindo/deploy/itcapp.rb +147 -0
- data/lib/pindo/deploy/itcinfo.rb +369 -0
- data/lib/pindo/deploy/pem.rb +55 -0
- data/lib/pindo/deploy/pullconfig.rb +46 -0
- data/lib/pindo/deploy/pushconfig.rb +83 -0
- data/lib/pindo/deploy/quswark.rb +146 -0
- data/lib/pindo/deploy/quswauth.rb +67 -0
- data/lib/pindo/deploy/reportbug.rb +135 -0
- data/lib/pindo/deploy/resign.rb +338 -0
- data/lib/pindo/deploy/tag.rb +108 -0
- data/lib/pindo/deploy/updateconfig.rb +129 -0
- data/lib/pindo/deploy/uploadipa.rb +63 -0
- data/lib/pindo/deploy.rb +44 -0
- data/lib/pindo/dev/autobuild.rb +204 -0
- data/lib/pindo/dev/autoresign.rb +186 -0
- data/lib/pindo/dev/confusecode.rb +127 -0
- data/lib/pindo/dev/confuseproj.rb +111 -0
- data/lib/pindo/dev/createbuild.rb +159 -0
- data/lib/pindo/dev/debug.rb +141 -0
- data/lib/pindo/dev/pub.rb +171 -0
- data/lib/pindo/dev/renewcert.rb +142 -0
- data/lib/pindo/dev.rb +23 -0
- data/lib/pindo/env/dreamstudio.rb +53 -0
- data/lib/pindo/env/flutter.rb +59 -0
- data/lib/pindo/env/flutter.sh +116 -0
- data/lib/pindo/env/quarkenv.rb +58 -0
- data/lib/pindo/env/swarkenv.rb +62 -0
- data/lib/pindo/env/workhard.rb +56 -0
- data/lib/pindo/env.rb +17 -0
- data/lib/pindo/ipa/autoresign.rb +188 -0
- data/lib/pindo/ipa/import.rb +261 -0
- data/lib/pindo/ipa/output.rb +396 -0
- data/lib/pindo/ipa.rb +22 -0
- data/lib/pindo/lib/forcepush.rb +159 -0
- data/lib/pindo/lib/lint.rb +115 -0
- data/lib/pindo/lib/push.rb +143 -0
- data/lib/pindo/lib/update.rb +75 -0
- data/lib/pindo/lib.rb +18 -0
- data/lib/pindo/module/appselect.rb +200 -0
- data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
- data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
- data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
- data/lib/pindo/module/buildconfighelper.rb +13 -0
- data/lib/pindo/module/buildhelper.rb +76 -0
- data/lib/pindo/module/commonconfuseproj.rb +271 -0
- data/lib/pindo/module/config_project.sh +143 -0
- data/lib/pindo/module/configprojhelper.rb +631 -0
- data/lib/pindo/module/iap_tier.json +813 -0
- data/lib/pindo/module/icon_contents.json +116 -0
- data/lib/pindo/module/imessage_icon.json +91 -0
- data/lib/pindo/module/imgset_contents.json +21 -0
- data/lib/pindo/module/launchimg_contents.json +21 -0
- data/lib/pindo/module/pemcreate.rb +63 -0
- data/lib/pindo/module/pgyerhelper.rb +339 -0
- data/lib/pindo/module/xcodebuildpre.rb +258 -0
- data/lib/pindo/module/xcodehelper.rb +521 -0
- data/lib/pindo/options/appconfigoptions.rb +23 -0
- data/lib/pindo/options/deployoptions.rb +363 -0
- data/lib/pindo/pgyer/apptest.rb +104 -0
- data/lib/pindo/pgyer/comment.rb +95 -0
- data/lib/pindo/pgyer/download.rb +105 -0
- data/lib/pindo/pgyer/login.rb +61 -0
- data/lib/pindo/pgyer/upload.rb +234 -0
- data/lib/pindo/pgyer.rb +17 -0
- data/lib/pindo/repo/clone.rb +78 -0
- data/lib/pindo/repo/create.rb +55 -0
- data/lib/pindo/repo/login.rb +64 -0
- data/lib/pindo/repo/search.rb +60 -0
- data/lib/pindo/repo.rb +16 -0
- data/lib/pindo/setup.rb +60 -0
- data/lib/pindo/upgrade.rb +56 -0
- data/lib/pindo/utils/applovin.rb +213 -0
- data/lib/pindo/utils/boss.rb +209 -0
- data/lib/pindo/utils/clearcert.rb +60 -0
- data/lib/pindo/utils/device.rb +279 -0
- data/lib/pindo/utils/icon.rb +91 -0
- data/lib/pindo/utils/icon.sh +133 -0
- data/lib/pindo/utils/podindex.rb +56 -0
- data/lib/pindo/utils/podindex.sh +30 -0
- data/lib/pindo/utils/renewproj.rb +146 -0
- data/lib/pindo/utils/tgate.rb +159 -0
- data/lib/pindo/utils/xcassets.rb +46 -0
- data/lib/pindo/utils/xcassets.sh +88 -0
- data/lib/pindo/utils.rb +29 -0
- data/lib/pindo/version.rb +110 -0
- data/lib/pindo.rb +34 -0
- metadata +364 -0
@@ -0,0 +1,159 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Lib < Command
|
8
|
+
class Forcepush < Lib
|
9
|
+
|
10
|
+
self.summary = '将私有pod库推送到远程仓库中'
|
11
|
+
|
12
|
+
self.description = <<-DESC
|
13
|
+
将私有pod库推送到远程仓库并添加到索引库中。用法:在工程目录下执行 pod lib libpush
|
14
|
+
DESC
|
15
|
+
|
16
|
+
self.arguments = [
|
17
|
+
CLAide::Argument.new('podspec', true)
|
18
|
+
]
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
[
|
22
|
+
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
23
|
+
].concat(super)
|
24
|
+
end
|
25
|
+
|
26
|
+
def initialize(argv)
|
27
|
+
@pod_spec_file = argv.shift_argument || nil
|
28
|
+
@project_dir = argv.option('p')
|
29
|
+
|
30
|
+
super(argv)
|
31
|
+
@additional_args = argv.remainder!
|
32
|
+
end
|
33
|
+
|
34
|
+
def validate!
|
35
|
+
super
|
36
|
+
@project_dir=Dir.pwd if @project_dir.nil? || @project_dir.empty?
|
37
|
+
end
|
38
|
+
|
39
|
+
def run
|
40
|
+
|
41
|
+
working_dir = @project_dir
|
42
|
+
process_need_add_files(project_dir:working_dir)
|
43
|
+
|
44
|
+
podspecs = []
|
45
|
+
if @pod_spec_file && (@pod_spec_file.to_s.end_with?('.podspec') || @pod_spec_file.to_s.end_with?('.json'))
|
46
|
+
podspecs = [@pod_spec_file]
|
47
|
+
else
|
48
|
+
podspecs = Pathname.glob(File.join(working_dir, '*.podspec{.json,}'))
|
49
|
+
end
|
50
|
+
if podspecs.count.zero?
|
51
|
+
raise Informative, '工作目录下没有任何podspec文件'
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
sources = Pod::Config.instance.sources_manager.all
|
56
|
+
|
57
|
+
pod_array = pindo_single_config.pod_repo_dict
|
58
|
+
pod_index_url = nil
|
59
|
+
if !pod_array.nil?
|
60
|
+
pod_index_url = pod_array['podindex']
|
61
|
+
else
|
62
|
+
raise Informative, '私有Pod索引地址未知!!'
|
63
|
+
end
|
64
|
+
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
65
|
+
if private_source.nil?
|
66
|
+
raise Informative, "私有Pod索引地址未知!"
|
67
|
+
end
|
68
|
+
begin
|
69
|
+
puts
|
70
|
+
private_source_branch = "master"
|
71
|
+
git!(%W(-C #{private_source.repo} reset --hard))
|
72
|
+
git!(%W(-C #{private_source.repo} clean -dfx))
|
73
|
+
git!(%W(-C #{private_source.repo} branch --set-upstream-to=origin/#{private_source_branch} #{private_source_branch}))
|
74
|
+
git!(%W(-C #{private_source.repo} pull))
|
75
|
+
rescue StandardError => e
|
76
|
+
raise Informative, "私有Pod索引目录异常,请删除#{private_source.repo}重新新下载"
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
pod_index_url_header = pod_index_url.slice(0, pod_index_url.rindex('/'))
|
82
|
+
pod_index_url_git_org = File.basename(pod_index_url_header)
|
83
|
+
working_dir_git_url = git!(%W(-C #{working_dir} config --get remote.origin.url)).chomp
|
84
|
+
working_dir_git_url_header = working_dir_git_url.slice(0, working_dir_git_url.rindex('/'))
|
85
|
+
working_dir_git_org = File.basename(working_dir_git_url_header)
|
86
|
+
if working_dir_git_org.include?(":")
|
87
|
+
working_dir_git_org = working_dir_git_org.slice(working_dir_git_org.rindex(':')+1, working_dir_git_org.size())
|
88
|
+
end
|
89
|
+
|
90
|
+
puts "pod本地地址: #{working_dir}"
|
91
|
+
puts "pod远程地址: #{working_dir_git_url}"
|
92
|
+
puts "索引本地地址: #{private_source.repo}"
|
93
|
+
puts "索引远程地址: #{private_source.url}"
|
94
|
+
puts pod_index_url_git_org
|
95
|
+
puts working_dir_git_org
|
96
|
+
|
97
|
+
if pod_index_url_git_org != working_dir_git_org
|
98
|
+
puts
|
99
|
+
puts "索引库地址:#{pod_index_url_git_org}"
|
100
|
+
puts "Pod库地址:#{working_dir_git_org}"
|
101
|
+
answer = agree("私有Pod索引地址与工作目录不一致, 是否继续推送(Y/n):")
|
102
|
+
unless answer
|
103
|
+
raise Informative, "私有Pod索引地址与工作目录不一致!!!请使用pindo env 切换环境后再推送"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
puts
|
108
|
+
puts "即将强制推送如下Pod库:"
|
109
|
+
command_array = []
|
110
|
+
podspecs.each do |podspec|
|
111
|
+
puts
|
112
|
+
puts podspec
|
113
|
+
podspec_obj = Pod::Specification.from_file(podspec)
|
114
|
+
pod_name = podspec_obj.name
|
115
|
+
tag_name = podspec_obj.version.to_s
|
116
|
+
puts "名称: #{pod_name} 版本: #{tag_name}"
|
117
|
+
end
|
118
|
+
|
119
|
+
puts
|
120
|
+
answer = agree("确定强制推送以上Pod库(Y/n):")
|
121
|
+
unless answer
|
122
|
+
raise Informative, "停止推送!!!"
|
123
|
+
end
|
124
|
+
|
125
|
+
|
126
|
+
puts "先检查对应的tag是否添加"
|
127
|
+
podspecs.each do |podspec|
|
128
|
+
puts
|
129
|
+
puts podspec
|
130
|
+
podspec_obj = Pod::Specification.from_file(podspec)
|
131
|
+
pod_name = podspec_obj.name
|
132
|
+
tag_name = podspec_obj.version.to_s
|
133
|
+
add_tag_with_check(local_repo_dir:working_dir, tag_name:tag_name)
|
134
|
+
end
|
135
|
+
|
136
|
+
puts "强制推送中..."
|
137
|
+
podspecs.each do |podspec|
|
138
|
+
podspec_obj = Pod::Specification.from_file(podspec)
|
139
|
+
pod_name = podspec_obj.name
|
140
|
+
tag_name = podspec_obj.version.to_s
|
141
|
+
|
142
|
+
dest_dir = File.join(private_source.repo,pod_name, tag_name)
|
143
|
+
puts dest_dir
|
144
|
+
begin FileUtils.mkdir_p(dest_dir) rescue StandardError => e end
|
145
|
+
FileUtils.cp_r(podspec, File.join(dest_dir, File.basename(podspec)))
|
146
|
+
puts "上传到仓库 #{private_source.repo}"
|
147
|
+
git_addpush_repo(path:private_source.repo, message:"add #{pod_name} #{tag_name}")
|
148
|
+
end
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Lib < Command
|
8
|
+
class Lint < Lib
|
9
|
+
|
10
|
+
self.summary = '本地编译私有pod库, 相当于pod lint功能'
|
11
|
+
|
12
|
+
self.description = <<-DESC
|
13
|
+
pod lint私有库,本地编译私有库,在私有库目录下执行pindo lib liblint
|
14
|
+
DESC
|
15
|
+
|
16
|
+
self.arguments = [
|
17
|
+
CLAide::Argument.new('podspec', true)
|
18
|
+
]
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
[
|
22
|
+
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
23
|
+
].concat(super)
|
24
|
+
end
|
25
|
+
|
26
|
+
def initialize(argv)
|
27
|
+
@pod_spec_file = argv.shift_argument || nil
|
28
|
+
@project_dir = argv.option('p')
|
29
|
+
|
30
|
+
super(argv)
|
31
|
+
@additional_args = argv.remainder!
|
32
|
+
end
|
33
|
+
|
34
|
+
def validate!
|
35
|
+
super
|
36
|
+
@project_dir=Dir.pwd if @project_dir.nil? || @project_dir.empty?
|
37
|
+
end
|
38
|
+
|
39
|
+
def run
|
40
|
+
|
41
|
+
working_dir = @project_dir
|
42
|
+
podspecs = []
|
43
|
+
if @pod_spec_file && (@pod_spec_file.to_s.end_with?('.podspec') || @pod_spec_file.to_s.end_with?('.json'))
|
44
|
+
podspecs = [@pod_spec_file]
|
45
|
+
else
|
46
|
+
podspecs = Pathname.glob(File.join(working_dir, '*.podspec{.json,}'))
|
47
|
+
end
|
48
|
+
if podspecs.count.zero?
|
49
|
+
raise Informative, '工作目录下没有任何podspec文件'
|
50
|
+
end
|
51
|
+
|
52
|
+
pod_array = pindo_single_config.pod_repo_dict
|
53
|
+
pod_index_url = nil
|
54
|
+
if !pod_array.nil?
|
55
|
+
pod_index_url = pod_array['podindex']
|
56
|
+
else
|
57
|
+
raise Informative, '私有Pod索引地址未知!!'
|
58
|
+
end
|
59
|
+
sources = Pod::Config.instance.sources_manager.all
|
60
|
+
public_source = sources.select { |s| s.is_a?(Pod::CDNSource) }.first
|
61
|
+
if public_source.nil?
|
62
|
+
public_source = sources.select { |s| s.git? && s.url.to_s.include?("CocoaPods/Specs.git") }.first
|
63
|
+
end
|
64
|
+
if public_source.nil?
|
65
|
+
raise Informative, '公有Pod地址未知,请pod install安装pod库'
|
66
|
+
end
|
67
|
+
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
68
|
+
if private_source.nil?
|
69
|
+
raise Informative, "私有Pod索引地址未知!"
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
command_array = []
|
75
|
+
puts "即将执行下列命令:"
|
76
|
+
podspecs.each do |podspec|
|
77
|
+
command = "pod lib lint #{podspec} --sources=#{private_source.url},#{public_source.url} --allow-warnings --use-libraries --use-modular-headers --no-clean --fail-fast --verbose"
|
78
|
+
puts
|
79
|
+
puts command
|
80
|
+
puts
|
81
|
+
command_array << command
|
82
|
+
end
|
83
|
+
|
84
|
+
answer = agree("是否运行以上命令(Y/n):")
|
85
|
+
unless answer
|
86
|
+
raise Informative, "停止运行!!!"
|
87
|
+
end
|
88
|
+
|
89
|
+
command_array.each do |command|
|
90
|
+
puts "正在运行命令:"
|
91
|
+
puts
|
92
|
+
puts command
|
93
|
+
system command
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
def podspecs_to_lint
|
100
|
+
if !@podspecs_paths.empty?
|
101
|
+
Array(@podspecs_paths)
|
102
|
+
else
|
103
|
+
podspecs = Pathname.glob(Pathname.pwd + '*.podspec{.json,}')
|
104
|
+
if podspecs.count.zero?
|
105
|
+
raise Informative, 'Unable to find a podspec in the working ' \
|
106
|
+
'directory'
|
107
|
+
end
|
108
|
+
podspecs
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,143 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Lib < Command
|
8
|
+
class Push < Lib
|
9
|
+
|
10
|
+
self.summary = '将私有pod库推送到远程仓库中'
|
11
|
+
|
12
|
+
self.description = <<-DESC
|
13
|
+
将私有pod库推送到远程仓库并添加到索引库中。用法:在工程目录下执行 pod lib libpush
|
14
|
+
DESC
|
15
|
+
|
16
|
+
self.arguments = [
|
17
|
+
CLAide::Argument.new('podspec', true)
|
18
|
+
]
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
[
|
22
|
+
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
23
|
+
].concat(super)
|
24
|
+
end
|
25
|
+
|
26
|
+
def initialize(argv)
|
27
|
+
@pod_spec_file = argv.shift_argument || nil
|
28
|
+
@project_dir = argv.option('p')
|
29
|
+
|
30
|
+
super(argv)
|
31
|
+
@additional_args = argv.remainder!
|
32
|
+
end
|
33
|
+
|
34
|
+
def validate!
|
35
|
+
super
|
36
|
+
@project_dir=Dir.pwd if @project_dir.nil? || @project_dir.empty?
|
37
|
+
end
|
38
|
+
|
39
|
+
def run
|
40
|
+
|
41
|
+
working_dir = @project_dir
|
42
|
+
process_need_add_files(project_dir:working_dir)
|
43
|
+
|
44
|
+
podspecs = []
|
45
|
+
if @pod_spec_file && (@pod_spec_file.to_s.end_with?('.podspec') || @pod_spec_file.to_s.end_with?('.json'))
|
46
|
+
podspecs = [@pod_spec_file]
|
47
|
+
else
|
48
|
+
podspecs = Pathname.glob(File.join(working_dir, '*.podspec{.json,}'))
|
49
|
+
end
|
50
|
+
if podspecs.count.zero?
|
51
|
+
raise Informative, '工作目录下没有任何podspec文件'
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
sources = Pod::Config.instance.sources_manager.all
|
57
|
+
public_source = sources.select { |s| s.is_a?(Pod::CDNSource) }.first
|
58
|
+
if public_source.nil?
|
59
|
+
public_source = sources.select { |s| s.git? && s.url.to_s.include?("CocoaPods/Specs.git") }.first
|
60
|
+
end
|
61
|
+
if public_source.nil?
|
62
|
+
raise Informative, '公有Pod地址未知,请pod install安装pod库'
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
pod_array = pindo_single_config.pod_repo_dict
|
67
|
+
pod_index_url = nil
|
68
|
+
if !pod_array.nil?
|
69
|
+
pod_index_url = pod_array['podindex']
|
70
|
+
else
|
71
|
+
raise Informative, '私有Pod索引地址未知!!'
|
72
|
+
end
|
73
|
+
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
74
|
+
if private_source.nil?
|
75
|
+
raise Informative, "私有Pod索引地址未知!"
|
76
|
+
end
|
77
|
+
|
78
|
+
pod_index_url_header = pod_index_url.slice(0, pod_index_url.rindex('/'))
|
79
|
+
pod_index_url_git_org = File.basename(pod_index_url_header)
|
80
|
+
working_dir_git_url = git!(%W(-C #{working_dir} config --get remote.origin.url)).chomp
|
81
|
+
working_dir_git_url_header = working_dir_git_url.slice(0, working_dir_git_url.rindex('/'))
|
82
|
+
working_dir_git_org = File.basename(working_dir_git_url_header)
|
83
|
+
if working_dir_git_org.include?(":")
|
84
|
+
working_dir_git_org = working_dir_git_org.slice(working_dir_git_org.rindex(':')+1, working_dir_git_org.size())
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
puts "pod本地地址: #{working_dir}"
|
89
|
+
puts "pod远程地址: #{working_dir_git_url}"
|
90
|
+
puts "索引本地地址: #{private_source.repo}"
|
91
|
+
puts "索引远程地址: #{private_source.url}"
|
92
|
+
|
93
|
+
if pod_index_url_git_org != working_dir_git_org
|
94
|
+
puts
|
95
|
+
puts "索引库地址:#{pod_index_url_git_org}"
|
96
|
+
puts "Pod库地址:#{working_dir_git_org}"
|
97
|
+
answer = agree("私有Pod索引地址与工作目录不一致, 是否继续推送(Y/n):")
|
98
|
+
unless answer
|
99
|
+
raise Informative, "私有Pod索引地址与工作目录不一致!!!请使用pindo env 切换环境后再推送"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
puts "即将执行下列命令:"
|
106
|
+
command_array = []
|
107
|
+
podspecs.each do |podspec|
|
108
|
+
command = "pod repo push #{private_source.name} --sources=#{private_source.url},#{public_source.url} --allow-warnings --use-libraries --use-modular-headers --verbose"
|
109
|
+
puts
|
110
|
+
puts command
|
111
|
+
puts
|
112
|
+
command_array << command
|
113
|
+
end
|
114
|
+
|
115
|
+
answer = agree("是否运行以上命令(Y/n):")
|
116
|
+
unless answer
|
117
|
+
raise Informative, "停止推送!!!"
|
118
|
+
end
|
119
|
+
|
120
|
+
puts "检查对应的tag 是否添加"
|
121
|
+
podspecs.each do |podspec|
|
122
|
+
puts
|
123
|
+
puts podspec
|
124
|
+
podspec_obj = Pod::Specification.from_file(podspec)
|
125
|
+
pod_name = podspec_obj.name
|
126
|
+
tag_name = podspec_obj.version
|
127
|
+
add_tag_with_check(local_repo_dir:working_dir, tag_name:tag_name)
|
128
|
+
end
|
129
|
+
|
130
|
+
command_array.each do |command|
|
131
|
+
puts "正在运行命令:"
|
132
|
+
puts
|
133
|
+
puts command
|
134
|
+
system command
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'highline/import'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Lib < Command
|
8
|
+
class Update < Lib
|
9
|
+
|
10
|
+
self.summary = '更新私有库索引地址'
|
11
|
+
|
12
|
+
self.description = <<-DESC
|
13
|
+
更新私有库索引地址,终端下运行 pindo lib update
|
14
|
+
DESC
|
15
|
+
|
16
|
+
self.arguments = [
|
17
|
+
|
18
|
+
]
|
19
|
+
|
20
|
+
def self.options
|
21
|
+
[
|
22
|
+
].concat(super)
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(argv)
|
26
|
+
|
27
|
+
super(argv)
|
28
|
+
@additional_args = argv.remainder!
|
29
|
+
end
|
30
|
+
|
31
|
+
def validate!
|
32
|
+
super
|
33
|
+
@project_dir=Dir.pwd if @project_dir.nil? || @project_dir.empty?
|
34
|
+
end
|
35
|
+
|
36
|
+
def run
|
37
|
+
|
38
|
+
working_dir = @project_dir
|
39
|
+
|
40
|
+
pod_array = pindo_single_config.pod_repo_dict
|
41
|
+
pod_index_url = nil
|
42
|
+
if !pod_array.nil?
|
43
|
+
pod_index_url = pod_array['podindex']
|
44
|
+
else
|
45
|
+
raise Informative, '私有Pod索引地址未知!!'
|
46
|
+
end
|
47
|
+
sources = Pod::Config.instance.sources_manager.all
|
48
|
+
|
49
|
+
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
50
|
+
if !private_source.nil?
|
51
|
+
puts "开始更新私有库索引地址..."
|
52
|
+
puts "地址:#{private_source.url}"
|
53
|
+
puts "目录:#{private_source.repo}"
|
54
|
+
git!(%W(-C #{private_source.repo} pull))
|
55
|
+
else
|
56
|
+
puts "下载私有库索引地址..."
|
57
|
+
puts "地址:#{pod_index_url}"
|
58
|
+
puts "目录:~/.cocoapods"
|
59
|
+
repos_path = File.expand_path("~/.cocoapods/repos")
|
60
|
+
getcode_to_dir(reponame:"goodpodsindex", remote_url: pod_index_url, path:repos_path)
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
if File.exist?("#{working_dir}/Podfile")
|
66
|
+
system "pod install"
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/lib/pindo/lib.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# require 'pindo/dev/create'
|
2
|
+
|
3
|
+
|
4
|
+
require 'pindo/lib/lint'
|
5
|
+
require 'pindo/lib/push'
|
6
|
+
require 'pindo/lib/forcepush'
|
7
|
+
require 'pindo/lib/update'
|
8
|
+
|
9
|
+
module Pindo
|
10
|
+
class Command
|
11
|
+
|
12
|
+
class Lib < Command
|
13
|
+
self.abstract_command = true
|
14
|
+
self.summary = '操作pod库的相关命令'
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|