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.
- 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,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
|