pindo 5.13.1 → 5.13.3

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/git_handler.rb +692 -0
  3. data/lib/pindo/command/android/autobuild.rb +2 -2
  4. data/lib/pindo/command/appstore/adhocbuild.rb +256 -311
  5. data/lib/pindo/command/appstore/autobuild.rb +203 -0
  6. data/lib/pindo/command/appstore/autoresign.rb +35 -17
  7. data/lib/pindo/command/appstore/bundleid.rb +120 -0
  8. data/lib/pindo/command/appstore/cert.rb +212 -0
  9. data/lib/pindo/command/appstore/configproj.rb +81 -0
  10. data/lib/pindo/command/{deploy → appstore}/getitcinfo.rb +76 -91
  11. data/lib/pindo/command/appstore/iap.rb +788 -24
  12. data/lib/pindo/command/appstore/initconfig.rb +105 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +95 -13
  14. data/lib/pindo/command/{deploy → appstore}/itcinfo.rb +90 -118
  15. data/lib/pindo/command/appstore/pem.rb +136 -0
  16. data/lib/pindo/command/appstore/pullconfig.rb +99 -0
  17. data/lib/pindo/command/appstore/quswark.rb +87 -0
  18. data/lib/pindo/command/appstore/quswauth.rb +67 -0
  19. data/lib/pindo/command/appstore/tag.rb +77 -0
  20. data/lib/pindo/command/appstore.rb +13 -1
  21. data/lib/pindo/command/env/quarkenv.rb +11 -13
  22. data/lib/pindo/command/env/swarkenv.rb +11 -16
  23. data/lib/pindo/command/ios/applovin.rb +24 -182
  24. data/lib/pindo/command/ios/autobuild.rb +64 -43
  25. data/lib/pindo/command/ios/autoresign.rb +34 -19
  26. data/lib/pindo/command/ios/build.rb +9 -6
  27. data/lib/pindo/command/ios/cert.rb +27 -20
  28. data/lib/pindo/command/ios/podupdate.rb +6 -37
  29. data/lib/pindo/command/jps/upload.rb +3 -3
  30. data/lib/pindo/command/unity/autobuild.rb +2 -2
  31. data/lib/pindo/command/utils/clearcert.rb +2 -17
  32. data/lib/pindo/command/{deploy → utils}/fabric.rb +13 -13
  33. data/lib/pindo/command/utils/renewcert.rb +62 -38
  34. data/lib/pindo/command/utils/renewproj.rb +0 -3
  35. data/lib/pindo/command/{deploy → utils}/updateconfig.rb +6 -7
  36. data/lib/pindo/command/utils.rb +2 -0
  37. data/lib/pindo/command/web/autobuild.rb +2 -2
  38. data/lib/pindo/command.rb +30 -3
  39. data/lib/pindo/config/build_info_manager.rb +176 -0
  40. data/lib/pindo/config/ios_config_parser.rb +404 -0
  41. data/lib/pindo/module/android/android_config_helper.rb +9 -5
  42. data/lib/pindo/module/appstore/bundleid_helper.rb +349 -0
  43. data/lib/pindo/module/appstore/itcapp_helper.rb +228 -0
  44. data/lib/pindo/module/build/build_helper.rb +12 -0
  45. data/lib/pindo/module/build/swark_helper.rb +116 -77
  46. data/lib/pindo/module/cert/cert_helper.rb +74 -0
  47. data/lib/pindo/module/cert/pem_helper.rb +72 -0
  48. data/lib/pindo/module/cert/{xcodecerthelper.rb → xcode_cert_helper.rb} +211 -6
  49. data/lib/pindo/module/pgyer/pgyerhelper.rb +13 -5
  50. data/lib/pindo/module/task/model/appstore/appstore_task.rb +18 -0
  51. data/lib/pindo/module/task/model/appstore/appstore_upload_ipa_task.rb +151 -0
  52. data/lib/pindo/module/task/model/appstore/appstore_upload_metadata_task.rb +250 -0
  53. data/lib/pindo/module/task/model/appstore/appstore_upload_screenshot_task.rb +276 -0
  54. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +210 -0
  55. data/lib/pindo/module/task/model/build/{android_dev_build_task.rb → android_build_dev_task.rb} +2 -2
  56. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +210 -0
  57. data/lib/pindo/module/task/model/build/android_build_task.rb +13 -0
  58. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +342 -0
  59. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +341 -0
  60. data/lib/pindo/module/task/model/build/{ios_dev_build_task.rb → ios_build_dev_task.rb} +40 -59
  61. data/lib/pindo/module/task/model/build/ios_build_task.rb +23 -0
  62. data/lib/pindo/module/task/model/build/{web_dev_build_task.rb → web_build_dev_task.rb} +1 -1
  63. data/lib/pindo/module/task/model/build_task.rb +15 -12
  64. data/lib/pindo/module/task/model/jps_resign_task.rb +185 -0
  65. data/lib/pindo/module/task/model/{upload_task.rb → jps_upload_task.rb} +3 -3
  66. data/lib/pindo/module/task/model/unity_export_task.rb +3 -1
  67. data/lib/pindo/module/unity/unity_helper.rb +2 -1
  68. data/lib/pindo/module/xcode/applovin_xcode_helper.rb +271 -0
  69. data/lib/pindo/module/xcode/cocoapods_helper.rb +153 -0
  70. data/lib/pindo/module/xcode/ipa_resign_helper.rb +210 -0
  71. data/lib/pindo/module/xcode/{xcodeappconfig.rb → xcode_app_config.rb} +79 -0
  72. data/lib/pindo/module/xcode/xcode_build_config.rb +152 -17
  73. data/lib/pindo/module/xcode/xcode_build_helper.rb +151 -1
  74. data/lib/pindo/module/xcode/xcode_swark_helper.rb +341 -0
  75. data/lib/pindo/options/core/global_options_state.rb +268 -0
  76. data/lib/pindo/options/core/option_configuration.rb +206 -0
  77. data/lib/pindo/options/core/option_initializer.rb +51 -0
  78. data/lib/pindo/options/core/option_item.rb +144 -0
  79. data/lib/pindo/options/core/option_value_parser.rb +54 -0
  80. data/lib/pindo/options/groups/build_options.rb +60 -0
  81. data/lib/pindo/options/groups/jps_options.rb +70 -0
  82. data/lib/pindo/options/groups/option_group.rb +73 -0
  83. data/lib/pindo/options/helpers/bundleid_selector.rb +103 -0
  84. data/lib/pindo/options/options.rb +14 -0
  85. data/lib/pindo/version.rb +1 -1
  86. metadata +51 -40
  87. data/lib/pindo/command/appstore/import.rb +0 -259
  88. data/lib/pindo/command/deploy/build.rb +0 -250
  89. data/lib/pindo/command/deploy/bundleid.rb +0 -259
  90. data/lib/pindo/command/deploy/cert.rb +0 -202
  91. data/lib/pindo/command/deploy/check.rb +0 -93
  92. data/lib/pindo/command/deploy/configproj.rb +0 -120
  93. data/lib/pindo/command/deploy/confusecode.rb +0 -262
  94. data/lib/pindo/command/deploy/confuseproj.rb +0 -122
  95. data/lib/pindo/command/deploy/iap.rb +0 -826
  96. data/lib/pindo/command/deploy/initconfig.rb +0 -138
  97. data/lib/pindo/command/deploy/itcapp.rb +0 -146
  98. data/lib/pindo/command/deploy/pem.rb +0 -55
  99. data/lib/pindo/command/deploy/pullconfig.rb +0 -56
  100. data/lib/pindo/command/deploy/pushconfig.rb +0 -93
  101. data/lib/pindo/command/deploy/quswark.rb +0 -156
  102. data/lib/pindo/command/deploy/quswauth.rb +0 -76
  103. data/lib/pindo/command/deploy/reportbug.rb +0 -145
  104. data/lib/pindo/command/deploy/resign.rb +0 -300
  105. data/lib/pindo/command/deploy/tag.rb +0 -108
  106. data/lib/pindo/command/deploy/uploadipa.rb +0 -73
  107. data/lib/pindo/command/deploy.rb +0 -42
  108. data/lib/pindo/command/dev/autobuild.rb +0 -117
  109. data/lib/pindo/command/dev/build.rb +0 -94
  110. data/lib/pindo/command/dev/debug.rb +0 -112
  111. data/lib/pindo/module/task/model/build/android_release_build_task.rb +0 -29
  112. data/lib/pindo/module/task/model/build/ios_adhoc_build_task.rb +0 -53
  113. data/lib/pindo/module/task/model/build/ios_release_build_task.rb +0 -53
  114. data/lib/pindo/options/appconfigoptions.rb +0 -24
  115. data/lib/pindo/options/deployoptions.rb +0 -372
@@ -1,138 +0,0 @@
1
- require 'fileutils'
2
- require 'faraday'
3
- require 'pindo/client/giteeclient'
4
-
5
- module Pindo
6
- class Command
7
- class Deploy < Command
8
-
9
- class Initconfig < Deploy
10
-
11
- self.summary = '创建App配置仓库'
12
-
13
- self.description = <<-DESC
14
- 创建App配置仓库
15
-
16
- 支持功能:
17
- - 在Gitee上创建新的应用配置仓库
18
- - 从模板仓库复制配置文件结构
19
- - 支持测试环境和生产环境仓库创建
20
-
21
- 使用示例:
22
- pindo deploy initconfig com.example.app
23
- pindo deploy initconfig com.example.app --test
24
- pindo deploy initconfig bundle-id
25
- DESC
26
-
27
- self.arguments = [
28
- CLAide::Argument.new('bundle id', true),
29
- ]
30
-
31
- def self.options
32
- [
33
- ['--test', 'use dev build mode']
34
- ].concat(super)
35
- end
36
-
37
- def initialize(argv)
38
- @bundle_id = argv.shift_argument
39
- @test_flag = argv.flag?('test', false)
40
- super
41
- @additional_args = argv.remainder!
42
- end
43
-
44
- def validate!
45
- super
46
-
47
- if @bundle_id.nil?
48
-
49
- say "需要输入仓库名称, 默认以bundle id作为仓库名称"
50
-
51
- @bundle_id = ask('bundle id: ') || nil
52
-
53
- end
54
-
55
- help! '你需要输入一个仓库名称' if @bundle_id.nil? || @bundle_id.empty?
56
-
57
- end
58
-
59
- def run
60
-
61
- @gitee_client = GiteeClient.new(access_token:pindo_single_config.gitee_api_key)
62
-
63
- demo_dir = clong_buildconfig_repo(repo_name: pindo_single_config.demo_bundle_id)
64
-
65
- public_type = 0
66
- owner_org = pindo_single_config.build_deploy_org
67
- repo_name = @bundle_id
68
-
69
- if @test_flag
70
- owner_org = pindo_single_config.build_test_org
71
- public_type = 2
72
- end
73
-
74
- success = @gitee_client.gitee_create_repo(owner:owner_org, repo_name:repo_name, public_type:public_type)
75
- if success
76
-
77
- if @test_flag
78
- modify_repo_setting(repo_name:repo_name, owner_org:owner_org)
79
- end
80
-
81
- app_config_dir = clong_buildconfig_repo(repo_name: repo_name)
82
- system 'open ' + app_config_dir
83
-
84
- if File.exist?(app_config_dir)
85
- update_appconfig_repo(resDir:demo_dir, desDir:app_config_dir)
86
- else
87
- puts "Creaate app config repo error !!!"
88
- end
89
- else
90
- app_config_dir = clong_buildconfig_repo(repo_name: repo_name)
91
- system 'open ' + app_config_dir
92
- end
93
-
94
- end
95
-
96
- def modify_repo_setting(repo_name:nil, owner_org:nil)
97
- pindo_setting_dir = pindo_single_config.pindo_env_configdir
98
- git_repo_file = pindo_single_config.git_base_url_fullname
99
- git_repo_json = JSON.parse(File.read(git_repo_file))
100
- git_repo_json = git_repo_json || {}
101
- if git_repo_json
102
- git_repo_json[repo_name] = owner_org
103
- end
104
- File.open(git_repo_file, "w") do |f|
105
- f.write(JSON.pretty_generate(git_repo_json))
106
- end
107
- git_addpush_repo(path:pindo_setting_dir, message:"add #{repo_name}")
108
- end
109
-
110
- def update_appconfig_repo(resDir:nil, desDir:nil)
111
- if File.exist?(resDir)
112
-
113
- if File.exist?(File.join(resDir, "config.json"))
114
- FileUtils.cp_r(File.join(resDir, "config.json"), desDir)
115
- end
116
-
117
- if File.exist?(File.join(resDir, "fastlane"))
118
- FileUtils.cp_r(File.join(resDir, "fastlane"), desDir)
119
- end
120
-
121
- if File.exist?(File.join(resDir, "launch"))
122
- FileUtils.cp_r(File.join(resDir, "launch"), desDir)
123
- end
124
-
125
- text = File.read(File.join(desDir, "config.json"))
126
- new_contents = text.gsub(/#{pindo_single_config.demo_bundle_id}/, "#{@bundle_id}")
127
- File.open(File.join(desDir, "config.json"), "w") {|file| file.puts new_contents }
128
-
129
- git_addpush_repo(path:desDir, message:"init app config")
130
-
131
- end
132
- end
133
-
134
- end
135
- end
136
- end
137
- end
138
-
@@ -1,146 +0,0 @@
1
-
2
- module Pindo
3
- class Command
4
- class Deploy < Command
5
- class Itcapp < Deploy
6
-
7
- include Command::DeployOptions
8
-
9
- self.summary = '在AppStore中创建App'
10
-
11
- self.description = <<-DESC
12
- 在AppStore中创建App
13
- DESC
14
-
15
- self.arguments = [
16
- CLAide::Argument.new('path/to/config.json', true),
17
- ]
18
-
19
- def self.options
20
- [
21
- ['--num', 'itc num version'],
22
- ['--com', 'itc num version'],
23
- ].concat(super)
24
- end
25
-
26
- def initialize(argv)
27
- @app_version = argv.option('num')
28
- @com_name = argv.option('com')
29
- puts "@app_version = #{@app_version}"
30
- super
31
- end
32
-
33
-
34
- def run
35
-
36
- Spaceship::Portal.login(@apple_id.to_s)
37
- Spaceship::Portal.select_team
38
- app = Spaceship::Portal.app.find(@bundle_id)
39
- if app.nil?
40
- Bundleid::run([@args_appconfig])
41
- sleep(2)
42
- end
43
- puts "Create app in itc ..."
44
- puts @apple_id
45
- puts "Login #{@apple_id}..."
46
- Spaceship::Tunes.login(@apple_id.to_s)
47
- Spaceship::Tunes.select_team
48
-
49
- create_itcapp(temp_bundle_id:@bundle_id)
50
- modify_appconfig_appleid(temp_bundle_id:@bundle_id)
51
-
52
- end
53
-
54
- def modify_appconfig_appleid(temp_bundle_id:nil)
55
-
56
- app = Spaceship::ConnectAPI::App.find(temp_bundle_id)
57
- unless app.nil?
58
- puts
59
- puts " app.id : #{app.id} +++++++++",
60
- puts
61
- modify_appconfig_file(app_config_file:@args_appconfig_fullname, app_info_detail:app)
62
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
63
- app_config_file = File.join(app_config_dir, "config.json")
64
- modify_appconfig_file(app_config_file:app_config_file, app_info_detail:app)
65
- prepare_gitenv()
66
- git_addpush_repo(path:app_config_dir, message:"modify apple id ")
67
- end
68
-
69
- end
70
-
71
- def modify_appconfig_file(app_config_file:nil, app_info_detail:nil)
72
- config_content=JSON.parse(File.read(app_config_file))
73
- File.open(app_config_file, "w") do |f|
74
- config_content['app_info']['app_id_ios'] = app_info_detail.id
75
- if config_content['app_setting']["apple_app_id"]
76
- config_content['app_setting']["apple_app_id"] = app_info_detail.id
77
- end
78
-
79
- if config_content['app_setting']["kGUKeyAppId"]
80
- config_content['app_setting']["kGUKeyAppId"] = app_info_detail.id
81
- end
82
-
83
- f.write(JSON.pretty_generate(config_content))
84
- end
85
-
86
- end
87
-
88
- def create_itcapp(temp_bundle_id:nil)
89
-
90
- temp_version = "1.0.0"
91
- if @config_json && @config_json["app_info"] && @config_json["app_info"]["app_version"]
92
- temp_version = @config_json["app_info"]["app_version"]
93
- end
94
-
95
- if (@com_name.nil? || @com_name.empty?) && !@config_json.nil? && !@config_json["account_info"].nil? && !@config_json["account_info"]["acount_company_name"].nil?
96
- @com_name = @config_json["account_info"]["acount_company_name"].strip
97
- end
98
-
99
- app = nil
100
- if !temp_bundle_id.nil?
101
- app = Spaceship::ConnectAPI::App.find(temp_bundle_id)
102
- if app == nil
103
- app_sku_id_fixed = temp_bundle_id + ".sku"
104
- puts "App的默认sku id 为: #{app_sku_id_fixed}"
105
- input_skuid = ask("请自定义输入App Sku ID: ") || nil
106
- if !input_skuid.nil? && input_skuid.length > 1
107
- app_sku_id_fixed = input_skuid
108
- end
109
-
110
- if @com_name.nil?
111
- @com_name = ask('Company Name : ') || nil
112
- end
113
- puts "App Sku ID : #{app_sku_id_fixed}"
114
- puts "Company Name : #{@com_name}"
115
- answer = agree("请确认上面信息是否正确(Y/n):")
116
- unless answer
117
- raise Informative, "重新创建 !!!"
118
- end
119
- app_default_name = temp_bundle_id.gsub('.', '')
120
- if app_default_name.length > 30
121
- app_default_name.slice!(30)
122
- end
123
- app = Spaceship::ConnectAPI::App.create(name: app_default_name,
124
- version_string: temp_version, # initial version
125
- sku: app_sku_id_fixed,
126
- primary_locale: "en-US",
127
- bundle_id: temp_bundle_id,
128
- platforms: ["IOS"],
129
- company_name:@com_name
130
- )
131
- puts "App is created !!!"
132
- else
133
- puts "App is already exist !!!"
134
- end
135
-
136
- end
137
- return app
138
- end
139
-
140
-
141
-
142
- end
143
- end
144
- end
145
- end
146
-
@@ -1,55 +0,0 @@
1
- require 'fileutils'
2
-
3
-
4
- module Pindo
5
- class Command
6
- class Deploy < Command
7
- class Pem < Deploy
8
-
9
- require 'pindo/module/cert/pem_helper'
10
- include Command::DeployOptions
11
-
12
- self.summary = '创建App的push证书'
13
-
14
- self.description = <<-DESC
15
- 创建App的push证书
16
- DESC
17
-
18
- self.arguments = [
19
- CLAide::Argument.new('path/to/config.json', true),
20
- ]
21
-
22
- def run
23
-
24
- Pindo::PemHelper.login(apple_id:@apple_id)
25
-
26
- pem_type="prod"
27
- if @args_dev_flag
28
- pem_type = "dev"
29
- end
30
-
31
- temp_dir = "push_" + Time.now.to_i.to_s
32
- push_path = File.join(File.expand_path('~/Desktop/'), temp_dir)
33
- FileUtils.mkdir_p(push_path) unless File.exist?(push_path)
34
- puts push_path
35
-
36
- x509_cert_path = Pindo::PemHelper.create_certificate(bundle_id:@bundle_id,type: pem_type, output_path:push_path);
37
-
38
- if File.exist?(x509_cert_path) && File.exist?(push_path)
39
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
40
- push_repo_dir = File.join(app_config_dir, "push")
41
-
42
- if !File.exist?(push_repo_dir)
43
- FileUtils.mkdir(push_repo_dir)
44
- end
45
- FileUtils.cp_r(File.join(push_path, "."), push_repo_dir)
46
-
47
- git_addpush_repo(path:app_config_dir, message:"add push cert")
48
- end
49
- end
50
-
51
- end
52
- end
53
- end
54
- end
55
-
@@ -1,56 +0,0 @@
1
- require 'fileutils'
2
-
3
- module Pindo
4
- class Command
5
- class Deploy < Command
6
-
7
- class Pullconfig < Deploy
8
-
9
- self.summary = '下载并更新App配置仓库'
10
- self.description = <<-DESC
11
- 下载并更新App配置仓库
12
-
13
- 支持功能:
14
- - 从远程仓库下载应用配置文件
15
- - 自动复制配置文件到当前目录
16
- - 支持多项目配置管理
17
-
18
- 使用示例:
19
- pindo deploy pullconfig com.example.app
20
- pindo deploy pullconfig bundle-id
21
- pindo deploy pullconfig your-app-bundle-id
22
- DESC
23
-
24
- self.arguments = [
25
- CLAide::Argument.new('bundleid', true)
26
- ]
27
-
28
- def initialize(argv)
29
- @args_appconfig_repo_name = argv.shift_argument
30
- super
31
- @additional_args = argv.remainder!
32
- end
33
-
34
- def validate!
35
- super
36
-
37
- if @args_appconfig_repo_name.nil?
38
- say "You need input a bundle id"
39
- @args_appconfig_repo_name = ask('App Config Repo Name : ') || nil
40
- end
41
- help! 'You need input a repo name' if @args_appconfig_repo_name.nil? || @args_appconfig_repo_name.empty?
42
- end
43
-
44
- def run
45
-
46
- app_config_dir = clong_buildconfig_repo(repo_name: @args_appconfig_repo_name)
47
- current=Dir.pwd
48
- if !app_config_dir.eql?(current) && File.exist?(File.join(app_config_dir, 'config.json'))
49
- FileUtils.cp_r(File.join(app_config_dir, "config.json"), current)
50
- end
51
- end
52
-
53
- end
54
- end
55
- end
56
- end
@@ -1,93 +0,0 @@
1
- require 'fileutils'
2
- require 'json'
3
-
4
- module Pindo
5
- class Command
6
- class Deploy < Command
7
-
8
- class Pushconfig < Deploy
9
-
10
- self.summary = '将app配置上传并且推送到远程仓库'
11
-
12
- self.description = <<-DESC
13
- 将app配置上传并且推送到远程仓库
14
-
15
- 支持功能:
16
- - 将本地config.json文件上传到配置仓库
17
- - 自动提交并推送配置更改到Git仓库
18
- - 检测配置文件变更并自动处理
19
-
20
- 使用示例:
21
- pindo deploy pushconfig path/to/config.json
22
- pindo deploy pushconfig ./config.json
23
- pindo deploy pushconfig
24
- DESC
25
-
26
- self.arguments = [
27
- CLAide::Argument.new('path/to/config.json', true)
28
- ]
29
-
30
- def self.options
31
- [
32
-
33
- ].concat(super)
34
- end
35
-
36
- def initialize(argv)
37
- @args_appconfig = argv.shift_argument || './config.json'
38
- super
39
- @additional_args = argv.remainder!
40
- end
41
-
42
- def validate!
43
- super
44
-
45
- if !@args_appconfig.empty? && File::file?(@args_appconfig)
46
- @args_appconfig_dir=File::expand_path(File::dirname(@args_appconfig))
47
- @args_appconfig_fullname=File::join(@args_appconfig_dir, File::basename(@args_appconfig))
48
- end
49
-
50
- configJson=JSON.parse(File.read(@args_appconfig_fullname))
51
- if configJson['account_info'] && configJson['account_info']['apple_acount_id']
52
- @apple_id = configJson['account_info']['apple_acount_id']
53
- end
54
-
55
- if configJson['app_info'] && configJson['app_info']['app_identifier']
56
- @bundle_id = configJson['app_info']['app_identifier']
57
- end
58
-
59
- help! 'Need correct config.json with a bundle id' if @bundle_id.nil? || @bundle_id.empty?
60
-
61
- end
62
-
63
- def run
64
-
65
- app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
66
-
67
- if !File.exist?(app_config_dir)
68
- puts "Error !!!"
69
- return
70
- end
71
-
72
- current=Dir.pwd
73
-
74
- if File.exist?(File.join(current, 'config.json'))
75
- FileUtils.cp_r(File.join(current, "config.json"), app_config_dir)
76
- end
77
-
78
- Dir.chdir(app_config_dir)
79
- files_list = git! ['status', '--porcelain']
80
- if !files_list.empty?
81
- git! ['add', "-A"]
82
- git! ['commit', '-m "update config.json"']
83
- git! ['push']
84
- else
85
- puts "no thing commint"
86
- end
87
- Dir.chdir(current)
88
-
89
- end
90
- end
91
- end
92
- end
93
- end
@@ -1,156 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'json'
4
- require 'xcodeproj'
5
- require 'yaml'
6
-
7
- module Pindo
8
- class Command
9
- class Deploy < Command
10
- class Quswark < Deploy
11
-
12
- include Command::DeployOptions
13
-
14
- self.summary = 'Xcode工程设置swark或quark'
15
-
16
- self.description = <<-DESC
17
- Xcode工程设置swark或quark
18
-
19
- 支持功能:
20
- - 自动检测项目类型并配置swark或quark环境
21
- - 生成对应的配置文件和环境设置
22
- - 支持不同构建模式的环境切换
23
-
24
- 使用示例:
25
- pindo deploy quswark path/to/config.json
26
- pindo deploy quswark ./config.json
27
- pindo deploy quswark config.json --dev
28
- pindo deploy quswark config.json --adhoc
29
- DESC
30
-
31
- self.arguments = [
32
- CLAide::Argument.new('path/to/config.json', true),
33
- ]
34
-
35
- def self.options
36
- [
37
-
38
- ].concat(super)
39
- end
40
-
41
- def initialize(argv)
42
- super
43
- @additional_args = argv.remainder!
44
- end
45
-
46
- def run
47
-
48
- if @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("quark")
49
- quark_run
50
- elsif @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("swark")
51
- swark_run
52
- else
53
- swark_run
54
- end
55
-
56
- end
57
-
58
-
59
- def swark_run
60
-
61
- Pindo::Command::Env::Swarkenv::run([])
62
- Pindo::Command::Deploy::Quswauth::run([])
63
-
64
- new_project_dir = Dir.pwd
65
-
66
- swark_host_name= File.join(new_project_dir, "Swark.host.yaml")
67
- host_json = {}
68
-
69
- host_json["remote"] = {}
70
- host_url = ""
71
- host_json["remote"]["test"] = ""
72
-
73
- if @config_json && @config_json['app_setting'] && @config_json['app_setting']['app_client_url']
74
- host_url = File.join(@config_json['app_setting']['app_client_url'], 'api/v3/init')
75
- end
76
-
77
- if @config_json && @config_json['app_setting'] && @config_json['app_setting']['kGUKeyAppClientHost']
78
- host_url = File.join(@config_json['app_setting']['kGUKeyAppClientHost'], 'api/v3/init')
79
- end
80
-
81
- host_json["remote"]["pre"] = host_url
82
- host_json["remote"]["prod"] = host_url
83
-
84
-
85
- embed_name = "vdisk.dat"
86
- category_name = "VMDemo"
87
- if @config_json['project_info'] && @config_json['project_info']['project_name']
88
- category_name = @config_json['project_info']['project_name']
89
- category_name = category_name.gsub(/ /, '');
90
- category_name = category_name.gsub(/\'/, '');
91
- embed_name = category_name + ".dat"
92
- end
93
- host_json["embed"] = embed_name
94
-
95
- yaml_to_save = File.open(swark_host_name,"w")
96
- YAML::dump(host_json,yaml_to_save)
97
- yaml_to_save.close
98
-
99
-
100
- swark_mode = 'prod'
101
- if @args_adhoc_flag || @args_dev_flag
102
- swark_mode = 'pre'
103
- end
104
- command = 'swark host ' + swark_mode
105
-
106
- # if @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("swark") && @config_json["project_info"]["xcode_build_type"].include?("confuse")
107
- # command = command + " --strip-compatibility-swift51"
108
- # end
109
- system command
110
-
111
- end
112
-
113
- def quark_run
114
-
115
- Pindo::Command::Env::Quarkenv::run([])
116
-
117
- new_project_dir = Dir.pwd
118
-
119
- quark_mode = 'prod'
120
- if @args_adhoc_flag || @args_dev_flag
121
- quark_mode = 'test'
122
- end
123
- command = 'quark host ' + quark_mode
124
- system command
125
-
126
- quark_json_file = File.join(new_project_dir, "QuarkData/Quark.lock")
127
- quark_json = JSON.parse(File.read(quark_json_file))
128
-
129
- if @config_json && @config_json['app_setting'] && @config_json['app_setting']['app_client_url']
130
- quark_json['remote'] = File.join(@config_json['app_setting']['app_client_url'], 'api/init')
131
- end
132
-
133
- embed_name = "Meety.dat"
134
- category_name = "PodsDummy"
135
- if @config_json['project_info'] && @config_json['project_info']['project_name']
136
- category_name = @config_json['project_info']['project_name']
137
- category_name = category_name.gsub(/ /, '');
138
- category_name = category_name.gsub(/\'/, '');
139
- embed_name = category_name + ".dat"
140
- end
141
- quark_json['embed'] = embed_name
142
- quark_json['category'] = category_name
143
- quark_json['env'] = quark_mode
144
-
145
- File.open(quark_json_file, "w") do |file|
146
- file.write(JSON.pretty_generate(quark_json))
147
- file.close
148
- end
149
-
150
- end
151
-
152
-
153
- end
154
- end
155
- end
156
- end