Class: Pindo::Command::Appstore::Adhocbuild
- Inherits:
-
Pindo::Command::Appstore
- Object
- CLAide::Command
- Pindo::Command
- Pindo::Command::Appstore
- Pindo::Command::Appstore::Adhocbuild
- Defined in:
- lib/pindo/command/appstore/adhocbuild.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) ⇒ Adhocbuild
constructor
A new instance of Adhocbuild.
- #run ⇒ Object
- #validate! ⇒ Object
Methods inherited from Pindo::Command
command_name, #initialize_options, run
Methods included from Funlog::Mixin
Methods included from Pindoconfig::Mixin
Constructor Details
#initialize(argv) ⇒ Adhocbuild
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 104 def initialize(argv) # 首先获取位置参数(向后兼容) positional_bundleid = argv.shift_argument # 一行代码完成参数初始化(自动推导命令名、自动启用缓存) @options = (argv) # 保存参数到实例变量 # 优先使用选项参数,如果没有则使用位置参数 @args_bundle_id = @options[:bundleid] || positional_bundleid @args_send_flag = @options[:send] # send 依赖 upload:如果指定了 send,自动启用 upload @args_upload_flag = @options[:send] || @options[:upload] @args_proj_name = @options[:proj] @args_increase_flag = @options[:increase] @args_skip_config = argv.flag?('skipconfig', false) @args_skip_lib = argv.flag?('skiplib', false) @args_skip_yoo = argv.flag?('skipyoo', false) super @additional_args = argv.remainder! end |
Class Method Details
.option_items ⇒ Object
定义此命令使用的参数项(类方法,避免重复定义)
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 78 def self.option_items @option_items ||= begin items = Pindo::Options::OptionGroup.merge( Pindo::Options::BuildOptions.select(:bundleid), Pindo::Options::JPSOptions.select(:proj, :upload, :send), Pindo::Options::UnityOptions.all ) # 添加 increase 参数 items << Pindo::Options::OptionItem.new( key: :increase, description: '自动增加编译的app版本号', type: Pindo::Options::OptionItem::Boolean, optional: true, example: 'pindo appstore adhocbuild --increase' ) items end end |
.options ⇒ Object
命令的选项列表
100 101 102 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 100 def self. option_items.map(&:to_claide_option).concat(super) end |
.use_cache? ⇒ Boolean
启用缓存机制
31 32 33 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 31 def self.use_cache? true # 此命令启用缓存 end |
Instance Method Details
#run ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 131 def run pindo_project_dir = Dir.pwd begin # 加载 JPS 配置(如果存在) Pindo::BuildHelper.share_instance.load_jps_build_config(pindo_project_dir) # 处理配置文件 prepare_config(pindo_project_dir) # 准备配置 config = prepare_ios_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) } task_manager.start system "open #{pindo_project_dir}" ensure # 清除命令状态(如果启用了缓存,这里会自动保存) Pindo::Options::GlobalOptionsState.instance.clear end end |
#validate! ⇒ Object
127 128 129 |
# File 'lib/pindo/command/appstore/adhocbuild.rb', line 127 def validate! super end |