pindo 4.6.9

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 (120) hide show
  1. checksums.yaml +7 -0
  2. data/bin/pindo +35 -0
  3. data/lib/pindo/base/aeshelper.rb +31 -0
  4. data/lib/pindo/base/deviceinfo.rb +90 -0
  5. data/lib/pindo/base/executable.rb +224 -0
  6. data/lib/pindo/base/githelper.rb +489 -0
  7. data/lib/pindo/base/hashhelper.rb +134 -0
  8. data/lib/pindo/base/plaininformative.rb +15 -0
  9. data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
  10. data/lib/pindo/base/standarderror.rb +14 -0
  11. data/lib/pindo/client/applovinclient.rb +156 -0
  12. data/lib/pindo/client/aws3sclient.rb +183 -0
  13. data/lib/pindo/client/bossclient.rb +229 -0
  14. data/lib/pindo/client/bossconfigclient.rb +175 -0
  15. data/lib/pindo/client/giteeclient.rb +65 -0
  16. data/lib/pindo/client/httpclient.rb +40 -0
  17. data/lib/pindo/client/pgyerclient.rb +439 -0
  18. data/lib/pindo/client/tgateclient.rb +103 -0
  19. data/lib/pindo/command.rb +101 -0
  20. data/lib/pindo/config/pindoconfig.rb +439 -0
  21. data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
  22. data/lib/pindo/deploy/Fastfile +233 -0
  23. data/lib/pindo/deploy/build.rb +167 -0
  24. data/lib/pindo/deploy/bundleid.rb +245 -0
  25. data/lib/pindo/deploy/cert.rb +508 -0
  26. data/lib/pindo/deploy/check.rb +79 -0
  27. data/lib/pindo/deploy/configproj.rb +89 -0
  28. data/lib/pindo/deploy/confusecode.rb +248 -0
  29. data/lib/pindo/deploy/confuseproj.rb +112 -0
  30. data/lib/pindo/deploy/fabric.rb +58 -0
  31. data/lib/pindo/deploy/getitcinfo.rb +248 -0
  32. data/lib/pindo/deploy/iap.rb +796 -0
  33. data/lib/pindo/deploy/initconfig.rb +128 -0
  34. data/lib/pindo/deploy/itcapp.rb +147 -0
  35. data/lib/pindo/deploy/itcinfo.rb +369 -0
  36. data/lib/pindo/deploy/pem.rb +55 -0
  37. data/lib/pindo/deploy/pullconfig.rb +46 -0
  38. data/lib/pindo/deploy/pushconfig.rb +83 -0
  39. data/lib/pindo/deploy/quswark.rb +146 -0
  40. data/lib/pindo/deploy/quswauth.rb +67 -0
  41. data/lib/pindo/deploy/reportbug.rb +135 -0
  42. data/lib/pindo/deploy/resign.rb +338 -0
  43. data/lib/pindo/deploy/tag.rb +108 -0
  44. data/lib/pindo/deploy/updateconfig.rb +129 -0
  45. data/lib/pindo/deploy/uploadipa.rb +63 -0
  46. data/lib/pindo/deploy.rb +44 -0
  47. data/lib/pindo/dev/autobuild.rb +204 -0
  48. data/lib/pindo/dev/autoresign.rb +186 -0
  49. data/lib/pindo/dev/confusecode.rb +127 -0
  50. data/lib/pindo/dev/confuseproj.rb +111 -0
  51. data/lib/pindo/dev/createbuild.rb +159 -0
  52. data/lib/pindo/dev/debug.rb +141 -0
  53. data/lib/pindo/dev/pub.rb +171 -0
  54. data/lib/pindo/dev/renewcert.rb +142 -0
  55. data/lib/pindo/dev.rb +23 -0
  56. data/lib/pindo/env/dreamstudio.rb +53 -0
  57. data/lib/pindo/env/flutter.rb +59 -0
  58. data/lib/pindo/env/flutter.sh +116 -0
  59. data/lib/pindo/env/quarkenv.rb +58 -0
  60. data/lib/pindo/env/swarkenv.rb +62 -0
  61. data/lib/pindo/env/workhard.rb +56 -0
  62. data/lib/pindo/env.rb +17 -0
  63. data/lib/pindo/ipa/autoresign.rb +188 -0
  64. data/lib/pindo/ipa/import.rb +261 -0
  65. data/lib/pindo/ipa/output.rb +396 -0
  66. data/lib/pindo/ipa.rb +22 -0
  67. data/lib/pindo/lib/forcepush.rb +159 -0
  68. data/lib/pindo/lib/lint.rb +115 -0
  69. data/lib/pindo/lib/push.rb +143 -0
  70. data/lib/pindo/lib/update.rb +75 -0
  71. data/lib/pindo/lib.rb +18 -0
  72. data/lib/pindo/module/appselect.rb +200 -0
  73. data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
  74. data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
  75. data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
  76. data/lib/pindo/module/buildconfighelper.rb +13 -0
  77. data/lib/pindo/module/buildhelper.rb +76 -0
  78. data/lib/pindo/module/commonconfuseproj.rb +271 -0
  79. data/lib/pindo/module/config_project.sh +143 -0
  80. data/lib/pindo/module/configprojhelper.rb +631 -0
  81. data/lib/pindo/module/iap_tier.json +813 -0
  82. data/lib/pindo/module/icon_contents.json +116 -0
  83. data/lib/pindo/module/imessage_icon.json +91 -0
  84. data/lib/pindo/module/imgset_contents.json +21 -0
  85. data/lib/pindo/module/launchimg_contents.json +21 -0
  86. data/lib/pindo/module/pemcreate.rb +63 -0
  87. data/lib/pindo/module/pgyerhelper.rb +339 -0
  88. data/lib/pindo/module/xcodebuildpre.rb +258 -0
  89. data/lib/pindo/module/xcodehelper.rb +521 -0
  90. data/lib/pindo/options/appconfigoptions.rb +23 -0
  91. data/lib/pindo/options/deployoptions.rb +363 -0
  92. data/lib/pindo/pgyer/apptest.rb +104 -0
  93. data/lib/pindo/pgyer/comment.rb +95 -0
  94. data/lib/pindo/pgyer/download.rb +105 -0
  95. data/lib/pindo/pgyer/login.rb +61 -0
  96. data/lib/pindo/pgyer/upload.rb +234 -0
  97. data/lib/pindo/pgyer.rb +17 -0
  98. data/lib/pindo/repo/clone.rb +78 -0
  99. data/lib/pindo/repo/create.rb +55 -0
  100. data/lib/pindo/repo/login.rb +64 -0
  101. data/lib/pindo/repo/search.rb +60 -0
  102. data/lib/pindo/repo.rb +16 -0
  103. data/lib/pindo/setup.rb +60 -0
  104. data/lib/pindo/upgrade.rb +56 -0
  105. data/lib/pindo/utils/applovin.rb +213 -0
  106. data/lib/pindo/utils/boss.rb +209 -0
  107. data/lib/pindo/utils/clearcert.rb +60 -0
  108. data/lib/pindo/utils/device.rb +279 -0
  109. data/lib/pindo/utils/icon.rb +91 -0
  110. data/lib/pindo/utils/icon.sh +133 -0
  111. data/lib/pindo/utils/podindex.rb +56 -0
  112. data/lib/pindo/utils/podindex.sh +30 -0
  113. data/lib/pindo/utils/renewproj.rb +146 -0
  114. data/lib/pindo/utils/tgate.rb +159 -0
  115. data/lib/pindo/utils/xcassets.rb +46 -0
  116. data/lib/pindo/utils/xcassets.sh +88 -0
  117. data/lib/pindo/utils.rb +29 -0
  118. data/lib/pindo/version.rb +110 -0
  119. data/lib/pindo.rb +34 -0
  120. metadata +364 -0
@@ -0,0 +1,103 @@
1
+
2
+ require 'uri'
3
+ require 'json'
4
+ require 'faraday'
5
+ require 'pindo/base/deviceinfo'
6
+
7
+
8
+ module Pindo
9
+
10
+
11
+ class TgateClient
12
+
13
+
14
+ attr_accessor :requests_config
15
+ attr_accessor :base_url
16
+
17
+ def initialize(base_usrl:nil, req_config:nil)
18
+ @base_url = base_usrl
19
+ @req_config = req_config
20
+
21
+ end
22
+
23
+
24
+ def get_gate_status(device_info:nil)
25
+
26
+ querry_params = device_info
27
+ querry_params = {
28
+ market:"iOS",
29
+ device_id:device_info.device_id,
30
+ idfa:device_info.idfa,
31
+ sbsid:device_info.sbsid,
32
+ sutid:device_info.sutid,
33
+ tzlid:device_info.tzlid
34
+ # idfv:device_info.idfv
35
+ }
36
+
37
+ req_url = URI.join(@base_url, @req_config["get_gate_status"])
38
+
39
+ con = Faraday.new
40
+ res = con.get do |req|
41
+ req.url req_url
42
+ req.headers['Content-Type'] = 'application/json'
43
+ req.params = querry_params
44
+ end
45
+
46
+ result_status = nil
47
+ if !res.body.nil?
48
+ result_status = JSON.parse(res.body)
49
+ end
50
+
51
+ return result_status
52
+ end
53
+
54
+ def post_update_gate_status(env_mode:nil, type:nil, to_status:nil, device_info:nil)
55
+
56
+ req_url = URI.join(@base_url, @req_config["update_gate_status"])
57
+
58
+ body_params = {
59
+ env:env_mode,
60
+ type:type,
61
+ to_status:to_status,
62
+ market:"iOS",
63
+ device_id:device_info.device_id,
64
+ idfa:device_info.idfa,
65
+ sbsid:device_info.sbsid,
66
+ sutid:device_info.sutid,
67
+ tzlid:device_info.tzlid
68
+ }
69
+
70
+ puts
71
+ puts "#{env_mode}环境更新#{type}为#{to_status}状态..."
72
+ # puts "env: #{env_mode}".bold.blue
73
+ # puts "type: #{type}".bold.blue
74
+ # puts "to_status: #{to_status}".bold.blue
75
+ # puts
76
+
77
+ con = Faraday.new
78
+ res = con.post do |req|
79
+ req.url req_url
80
+ req.headers['Content-Type'] = 'application/json'
81
+ req.body = body_params.to_json
82
+ end
83
+
84
+ result_status = nil
85
+ if !res.body.nil?
86
+ result_status = JSON.parse(res.body)
87
+ end
88
+
89
+
90
+ if !result_status.nil? && !result_status["meta"].nil? && result_status["meta"]["code"].to_s.eql?("200") && !result_status["data"].nil? && result_status["data"]["is_success"]
91
+ puts "更新成功!!"
92
+ puts
93
+ end
94
+ # puts
95
+
96
+ return result_status
97
+
98
+
99
+ end
100
+
101
+ end
102
+ end
103
+
@@ -0,0 +1,101 @@
1
+
2
+
3
+ require 'claide'
4
+ require 'json'
5
+ require 'pindo/version'
6
+ require 'pindo/config/pindoconfig'
7
+ require 'pindo/base/plaininformative'
8
+ require 'pindo/base/githelper'
9
+ require 'pindo/client/giteeclient'
10
+ require 'pindo/base/hashhelper'
11
+
12
+ module Pindo
13
+ class Informative < PlainInformative
14
+ def message
15
+ "[!] #{super}".red
16
+ end
17
+ end
18
+
19
+ class Command < CLAide::Command
20
+
21
+ include Pindo::Githelper
22
+ include Pindoconfig::Mixin
23
+
24
+ require 'pindo/options/deployoptions'
25
+
26
+
27
+ require 'pindo/module/appselect'
28
+ require 'pindo/module/buildconfighelper'
29
+ require 'pindo/module/buildhelper'
30
+ require 'pindo/module/pemcreate'
31
+ require 'pindo/module/commonconfuseproj'
32
+ require 'pindo/module/xcodebuildpre'
33
+ require 'pindo/module/xcodehelper'
34
+ require 'pindo/module/configprojhelper'
35
+ require 'pindo/module/appstore_in_app_purchase'
36
+ require 'pindo/module/appstore_metadata_fastlane_helper'
37
+ require 'pindo/module/appstore_metadata_connect_api_helper'
38
+
39
+
40
+ require 'pindo/deploy'
41
+ require 'pindo/dev'
42
+ require 'pindo/env'
43
+ require 'pindo/lib'
44
+ require 'pindo/utils'
45
+ require 'pindo/pgyer'
46
+ require 'pindo/setup'
47
+ require 'pindo/repo'
48
+ require 'pindo/upgrade'
49
+ require 'pindo/ipa'
50
+
51
+
52
+ attr_accessor :args_help_flag
53
+ alias_method :args_help_flag?, :args_help_flag
54
+
55
+ self.abstract_command = true
56
+ self.command = 'pindo'
57
+ self.version = VERSION
58
+ self.description = 'pindo, make it easy!'
59
+
60
+
61
+ DEFAULT_ROOT_OPTIONS = [
62
+ ['--version', '查看pindo版本'],
63
+ ]
64
+
65
+ DEFAULT_OPTIONS = [
66
+ ['--help', '查看命令行用法'],
67
+ ]
68
+
69
+
70
+ # def self.options
71
+ # [
72
+
73
+ # ].concat(super)
74
+ # end
75
+
76
+ def self.options
77
+ if root_command?
78
+ DEFAULT_ROOT_OPTIONS + DEFAULT_OPTIONS
79
+ else
80
+ DEFAULT_OPTIONS
81
+ end
82
+ end
83
+
84
+ def validate!
85
+ super
86
+ help! if args_help_flag?
87
+ end
88
+
89
+ def self.run(argv)
90
+
91
+ super(argv)
92
+ end
93
+
94
+ def initialize(argv)
95
+ super
96
+ @args_help_flag = argv.flag?('help', false)
97
+ end
98
+
99
+ end
100
+
101
+ end
@@ -0,0 +1,439 @@
1
+
2
+ require 'fileutils'
3
+ require 'json'
4
+
5
+
6
+ module Pindo
7
+
8
+ class Pindoconfig
9
+
10
+ attr_accessor :pindo_common_config_json
11
+ attr_accessor :pindo_env_config_json
12
+ attr_accessor :pindo_user_config_json
13
+
14
+ def initialize(enable_ustom_config = true)
15
+
16
+ # puts "initialize Pindoconfig"
17
+ if !File.exist?(pindo_dir)
18
+ FileUtils.mkdir(pindo_dir)
19
+ end
20
+
21
+
22
+
23
+ @pindo_user_config_json = {}
24
+ @pindo_user_config_json["pindo_common_config"] = "https://gitee.com/goodbuildtest/pindo_common_config.git"
25
+
26
+ if File.exist?(pindo_common_configfile_fullname)
27
+
28
+ @pindo_common_config_json = {}
29
+ begin
30
+ @pindo_common_config_json = JSON.parse(File.read(pindo_common_configfile_fullname))
31
+ rescue => exception
32
+ puts "Error !!! +++++++++++ load Pindo common config error !!!"
33
+ end
34
+
35
+ # 必须先覆盖给 @pindo_user_config_json , 后面pindo_env_configfile_fullname会使用到 @pindo_user_config_json
36
+ if !@pindo_common_config_json.nil?
37
+ @pindo_user_config_json = deep_copy_hash(des_hash:@pindo_user_config_json, src_hash:@pindo_common_config_json)
38
+ end
39
+
40
+ end
41
+
42
+ env_name = pindo_user_env
43
+ temp_env_config_dir = nil
44
+
45
+ if env_name == "dreamstudio_config"
46
+ temp_env_config_dir = "pindo_dreamstudio_config"
47
+ elsif env_name == "workhard_config"
48
+ temp_env_config_dir = "pindo_workhard_config"
49
+ end
50
+
51
+ if !temp_env_config_dir.nil? && File.exist?(File.join(pindo_dir, temp_env_config_dir))
52
+
53
+ @pindo_env_config_json = {}
54
+
55
+ file_name = pindo_env_configfile_fullname
56
+ # puts "!!! +++++++++++ load Pindo env config !!!\n #{file_name}"
57
+ @pindo_env_config_json = JSON.parse(File.read(file_name))
58
+
59
+
60
+ if !@pindo_env_config_json.nil?
61
+ @pindo_user_config_json = deep_copy_hash(des_hash:@pindo_user_config_json, src_hash:@pindo_env_config_json)
62
+ end
63
+ end
64
+
65
+
66
+ end
67
+
68
+
69
+ def deep_copy_hash(des_hash:nil, src_hash:nil)
70
+
71
+ res_hash = {}
72
+ des_hash = des_hash || {}
73
+ src_hash = src_hash || {}
74
+
75
+ if !des_hash.nil? && (des_hash.kind_of? Hash)
76
+ des_hash.each do |key, value|
77
+ if !value.nil? && (value.kind_of? Hash)
78
+ res_hash[key] = deep_copy_hash(des_hash:nil, src_hash:value)
79
+ else
80
+ res_hash[key] = value
81
+ end
82
+ end
83
+ end
84
+
85
+ if !src_hash.nil? && (src_hash.kind_of? Hash)
86
+ src_hash.each do |key, value|
87
+ if !value.nil? && (value.kind_of? Hash)
88
+ res_hash[key] = deep_copy_hash(des_hash:nil, src_hash:value)
89
+ else
90
+ res_hash[key] = value
91
+ end
92
+ end
93
+ end
94
+
95
+ return res_hash
96
+ end
97
+
98
+ # Applies the given changes to the config for the duration of the given
99
+ # block.
100
+ #
101
+ # @param [Hash<#to_sym,Object>] changes
102
+ # the changes to merge temporarily with the current config
103
+ #
104
+ # @yield [] is called while the changes are applied
105
+ #
106
+
107
+ def with_changes(changes)
108
+ old = {}
109
+ changes.keys.each do |key|
110
+ key = key.to_sym
111
+ old[key] = send(key) if respond_to?(key)
112
+ end
113
+ configure_with(changes)
114
+ yield if block_given?
115
+ ensure
116
+ configure_with(old)
117
+ end
118
+
119
+ # Sets the values of the attributes with the given hash.
120
+ #
121
+ # @param [Hash{String,Symbol => Object}] values_by_key
122
+ # The values of the attributes grouped by key.
123
+ #
124
+ # @return [void]
125
+ #
126
+ def configure_with(values_by_key)
127
+
128
+ return unless values_by_key
129
+ values_by_key.each do |key, value|
130
+ instance_variable_set("@#{key}", value)
131
+ end
132
+
133
+ end
134
+
135
+ #-------------------------------------------------------------------------#
136
+ #-------------------------------------------------------------------------#
137
+
138
+ def update_pindo_env(env_name:nil)
139
+ if !env_name.nil? then
140
+ @pindo_user_env = env_name
141
+ pindo_env_file = File.join(pindo_dir, '.pindo_env')
142
+ pindo_env_json = {}
143
+ pindo_env_json['pindo_env'] = @pindo_user_env
144
+
145
+ if !File.exist?(pindo_dir)
146
+ FileUtils.mkdir(pindo_dir)
147
+ end
148
+
149
+ File.open(pindo_env_file, "w") do |f|
150
+ f.write(JSON.pretty_generate(pindo_env_json))
151
+ end
152
+ end
153
+ return @pindo_user_env
154
+ end
155
+
156
+ def pindo_user_env
157
+
158
+ pindo_env_file = File.join(pindo_dir, '.pindo_env')
159
+ if File.exist?(pindo_env_file)
160
+ pindo_env_file_json = JSON.parse(File.read(pindo_env_file))
161
+ if pindo_env_file_json && pindo_env_file_json['pindo_env'] && pindo_env_file_json['pindo_env'] != "" then
162
+ @pindo_user_env = pindo_env_file_json['pindo_env']
163
+ end
164
+ end
165
+ return @pindo_user_env
166
+ end
167
+
168
+ def pindo_env_config_dirname
169
+ env_config_dirname = nil
170
+
171
+ begin
172
+ url = pindo_env_config_giturl
173
+ temp_url = String.new(url)
174
+ index = temp_url.rindex('/')
175
+ temp_url = temp_url.slice(index + 1, temp_url.length)
176
+ env_config_dirname = temp_url.gsub!(/\.git/, "")
177
+
178
+ rescue => err
179
+ puts err
180
+ raise Informative, "pindo配置错误 !!!\n \n 请运行pindo setup 更新pindo配置 \n"
181
+ end
182
+
183
+ return env_config_dirname
184
+
185
+ end
186
+
187
+
188
+ def pindo_dir
189
+ return @pindo_dir ||= File.expand_path(ENV['PINDO_DIR'] || '~/.pindo')
190
+ end
191
+
192
+ def config_file_name
193
+ return "pindo_config.json"
194
+ end
195
+
196
+ def pindo_common_configdir
197
+ return @pindo_common_configdir ||= File.join(pindo_dir, "pindo_common_config")
198
+ end
199
+
200
+ def pindo_common_configfile_fullname
201
+ return @pindo_common_configfile_fullname ||= File.join(pindo_common_configdir, config_file_name)
202
+ end
203
+
204
+ def pindo_env_configdir
205
+ return File.join(pindo_dir, pindo_env_config_dirname)
206
+ end
207
+
208
+ def pindo_env_configfile_fullname
209
+ return File.join(pindo_env_configdir, config_file_name)
210
+ end
211
+
212
+
213
+ #-------------------------------------------------------------------------#
214
+ #-------------------------------------------------------------------------#
215
+
216
+ def set_cert_info(dict:nil)
217
+ return @set_cert_info = dict
218
+ end
219
+
220
+ def get_cert_info()
221
+ return @set_cert_info
222
+ end
223
+
224
+ def pindo_common_config_giturl
225
+ url = ''
226
+ if !@pindo_user_config_json.nil?
227
+ url = @pindo_user_config_json["pindo_common_config"]
228
+ end
229
+ return url
230
+ end
231
+
232
+ def pindo_env_config_giturl
233
+ env = pindo_user_env();
234
+ url = nil
235
+ if !env.nil? && env != "" && !@pindo_user_config_json.nil? && !@pindo_user_config_json["pindo_config_env"].nil? then
236
+ url = @pindo_user_config_json["pindo_config_env"][env]
237
+ end
238
+ return url
239
+ end
240
+
241
+
242
+ def deploy_clang_giturl
243
+ url = ''
244
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["custome_build_system"].nil? then
245
+ url = @pindo_user_config_json["custome_build_system"]["deploy_clang_giturl"]
246
+ end
247
+ return url
248
+
249
+ end
250
+
251
+ def dev_clang_giturl
252
+ url = ''
253
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["custome_build_system"].nil?
254
+ url = @pindo_user_config_json["custome_build_system"]["dev_clang_giturl"]
255
+ end
256
+ return url
257
+
258
+ end
259
+
260
+ def deploy_quark_giturl
261
+ url = ''
262
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["custome_build_system"].nil?
263
+ url = @pindo_user_config_json["custome_build_system"]["deploy_quark_giturl"]
264
+ end
265
+ return url
266
+ end
267
+
268
+ def deploy_swark_giturl
269
+ url = ''
270
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["custome_build_system"].nil?
271
+ url = @pindo_user_config_json["custome_build_system"]["deploy_swark_giturl"]
272
+ end
273
+ return url
274
+ end
275
+
276
+ def deploy_flutter_giturl
277
+ url = ''
278
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["custome_build_system"].nil?
279
+ url = @pindo_user_config_json["custome_build_system"]["deploy_flutter_giturl"]
280
+ end
281
+ return url
282
+ end
283
+
284
+ def deploy_cert_giturl
285
+ url = ''
286
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["develop_accout_info"].nil?
287
+ url = @pindo_user_config_json["develop_accout_info"]["deploy_cert_giturl"]
288
+ end
289
+ return url
290
+ end
291
+
292
+ def dev_cert_giturl
293
+ url = ''
294
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["develop_accout_info"].nil?
295
+ url = @pindo_user_config_json["develop_accout_info"]["dev_cert_giturl"]
296
+ end
297
+ return url
298
+ end
299
+
300
+ def demo_apple_id
301
+ url = ''
302
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["develop_accout_info"].nil?
303
+ url = @pindo_user_config_json["develop_accout_info"]["demo_apple_id"]
304
+ end
305
+ return url
306
+ end
307
+
308
+ def demo_bundle_id
309
+ url = ''
310
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["develop_accout_info"].nil?
311
+ url = @pindo_user_config_json["develop_accout_info"]["demo_bundle_id"]
312
+ end
313
+ return url
314
+ end
315
+
316
+ def crash_bundle_id
317
+ url = ''
318
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["develop_accout_info"].nil?
319
+ url = @pindo_user_config_json["develop_accout_info"]["crash_bundle_id"]
320
+ end
321
+ return url
322
+ end
323
+
324
+
325
+ def build_deploy_org
326
+ url = ''
327
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["gitee_repo_info"].nil?
328
+ url = @pindo_user_config_json["gitee_repo_info"]["appconfig_appstore_org"]
329
+ end
330
+ return url
331
+ end
332
+
333
+ def build_test_org
334
+ url = ''
335
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["gitee_repo_info"].nil?
336
+ url = @pindo_user_config_json["gitee_repo_info"]["appconfig_test_org"]
337
+ end
338
+ return url
339
+ end
340
+
341
+ def gitee_api_key
342
+ api_key = ''
343
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["gitee_repo_info"].nil?
344
+ api_key = @pindo_user_config_json["gitee_repo_info"]["gitee_api_key"]
345
+ end
346
+ return api_key
347
+ end
348
+
349
+
350
+ def pgyer_api_key
351
+ api_key = ''
352
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["pgyer_accout_info"].nil?
353
+ api_key = @pindo_user_config_json["pgyer_accout_info"]["pgyer_api_key"]
354
+ end
355
+ return api_key
356
+ end
357
+
358
+ def pgyer_user_key
359
+ api_key = ''
360
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["pgyer_accout_info"].nil?
361
+ api_key = @pindo_user_config_json["pgyer_accout_info"]["pgyer_user_key"]
362
+ end
363
+ return api_key
364
+ end
365
+
366
+ def pod_repo_dict
367
+ repo_array = ''
368
+ if !@pindo_user_config_json.nil?
369
+ repo_array = @pindo_user_config_json["podindex_repo_dict"]
370
+ end
371
+ return repo_array
372
+ end
373
+
374
+ def git_base_url_fullname
375
+ return @git_base_url_fullname ||= File.join(pindo_env_configdir, "git_base_url.json")
376
+ end
377
+
378
+ def set_pgyerapps_info_list(app_info_list:nil)
379
+ @app_info_list = app_info_list
380
+ end
381
+
382
+ def get_pgyerapps_info_list
383
+ return @app_info_list
384
+ end
385
+
386
+
387
+ def tgate_base_url
388
+ tgate_base_url = ''
389
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["tgate_base_url"].nil?
390
+ tgate_base_url = @pindo_user_config_json["tgate_base_url"]
391
+ end
392
+ return tgate_base_url
393
+ end
394
+
395
+ def tgate_req_config
396
+ tgate_req_config = nil
397
+ if !@pindo_user_config_json.nil? && !@pindo_user_config_json["tgate_req_config"].nil?
398
+ tgate_req_config = @pindo_user_config_json["tgate_req_config"]
399
+ end
400
+ return tgate_req_config
401
+ end
402
+
403
+
404
+ #-------------------------------------------------------------------------#
405
+ #-------------------------------------------------------------------------#
406
+ # @!group Singleton
407
+
408
+ # @return [Config] the current config instance creating one if needed.
409
+ #
410
+ def self.reload_instance
411
+ @instance = new
412
+ end
413
+
414
+ def self.instance
415
+ @instance ||= new
416
+ end
417
+
418
+ # Sets the current config instance. If set to nil the config will be
419
+ # recreated when needed.
420
+ #
421
+ # @param [Config, Nil] the instance.
422
+ #
423
+ # @return [void]
424
+ #
425
+ class << self
426
+ attr_writer :instance
427
+ end
428
+
429
+ # Provides support for accessing the configuration instance in other
430
+ # scopes.
431
+ #
432
+ module Mixin
433
+ def pindo_single_config
434
+ Pindoconfig.instance
435
+ end
436
+ end
437
+
438
+ end
439
+ end