Class: Pindo::Command::Android::Autobuild
- Inherits:
-
Pindo::Command::Android
- Object
- CLAide::Command
- Pindo::Command
- Pindo::Command::Android
- Pindo::Command::Android::Autobuild
- Includes:
- Appselect
- Defined in:
- lib/pindo/command/android/autobuild.rb
Constant Summary
Constants inherited from Pindo::Command
DEFAULT_OPTIONS, DEFAULT_ROOT_OPTIONS
Instance Attribute Summary
Attributes inherited from Pindo::Command
Class Method Summary collapse
-
.option_items ⇒ Object
定义此命令使用的参数项.
- .options ⇒ Object
-
.use_cache? ⇒ Boolean
启用缓存机制.
Instance Method Summary collapse
-
#initialize(argv) ⇒ Autobuild
constructor
A new instance of Autobuild.
- #run ⇒ Object
Methods included from Appselect
#all_deploy_bundle_name, #all_dev_bundle_name, #all_dev_bundleid, #all_itc_bundleid, #all_release_bundleid, #all_tool_bundleid, #deploy_build_setting_json, #dev_build_setting_json, #get_deploy_repo_with_modul_name, #get_deploy_setting_repo, #get_dev_setting_repo, #get_selected_deploy_bundle_name, #get_selected_deploy_bundleid, #get_selected_dev_bundle_name, #get_selected_dev_bundleid, #get_setting_bundleid_withdir, #load_setting, #select_main_app
Methods inherited from Pindo::Command
command_name, #initialize_options, run, #validate!
Methods included from Funlog::Mixin
Methods included from Pindoconfig::Mixin
Constructor Details
#initialize(argv) ⇒ Autobuild
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/pindo/command/android/autobuild.rb', line 89 def initialize(argv) = (argv) @args_release_flag = argv.flag?('release', false) @args_upload_flag = [:upload] || false @args_send_flag = [:send] || false @args_proj_name = [:proj] @args_bundle_name = argv.option('bundle_name') @args_skip_lib = [:skiplib] || false @args_skip_yoo = [:skipyoo] || false # media 依赖 upload:如果指定了 media,自动启用 upload @args_media_flag = [:media] || false # Task 参数 @args_multi_flag = [:multi] || false # Git 参数 @args_release_branch = [:release_branch] || 'master' @args_ver_inc = Pindo::Options::GitOptions.parse_version_increase_type([:ver_inc] || 'mini') @args_tag_type = Pindo::Options::GitOptions.parse_create_tag_type([:tag_type] || 'new') @args_tag_pre = [:tag_pre] || 'v' if @args_send_flag || @args_media_flag @args_upload_flag = true end super @additional_args = argv.remainder! end |
Class Method Details
.option_items ⇒ Object
定义此命令使用的参数项
72 73 74 75 76 77 78 79 80 |
# File 'lib/pindo/command/android/autobuild.rb', line 72 def self.option_items @option_items ||= Pindo::Options::OptionGroup.merge( Pindo::Options::JPSOptions.select(:proj, :upload, :send, :media), Pindo::Options::UnityOptions.select(:skiplib, :skipyoo), Pindo::Options::UnityOptions.select_with_defaults(skipconfig: true), Pindo::Options::TaskOptions.select(:multi), Pindo::Options::GitOptions.all ) end |
.options ⇒ Object
82 83 84 85 86 87 |
# File 'lib/pindo/command/android/autobuild.rb', line 82 def self. [ ['--release', '使用Release模式构建'], ['--bundle_name=NAME', '指定Android Package Name(如com.example.app,会拉取对应配置)'] ].concat(option_items.map(&:to_claide_option)).concat(super) end |
.use_cache? ⇒ Boolean
启用缓存机制
29 30 31 |
# File 'lib/pindo/command/android/autobuild.rb', line 29 def self.use_cache? true # 此命令启用缓存 end |
Instance Method Details
#run ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/pindo/command/android/autobuild.rb', line 119 def run pindo_project_dir = Dir.pwd # 加载 JPS 配置(如果存在) Pindo::BuildHelper.share_instance.load_jps_build_config(pindo_project_dir) # 准备配置 config = prepare_android_config(pindo_project_dir) # 创建并执行任务 tasks = make_build_task(config) # 添加到任务管理器并执行 task_manager = Pindo::TaskSystem::TaskManager.instance task_manager.clear_all tasks.each { |task| task_manager.add_task(task) } # 执行任务(根据 --multi 参数决定模式) if @args_multi_flag task_manager.start(mode: :concurrent, max_workers: 3) else task_manager.start end system "open #{pindo_project_dir}" end |