pindo 5.14.5 → 5.14.7

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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/git_handler.rb +140 -65
  3. data/lib/pindo/command/android/autobuild.rb +101 -33
  4. data/lib/pindo/command/appstore/bundleid.rb +1 -1
  5. data/lib/pindo/command/appstore/pem.rb +1 -1
  6. data/lib/pindo/command/ios/autobuild.rb +116 -56
  7. data/lib/pindo/command/jps/apptest.rb +129 -50
  8. data/lib/pindo/command/jps/resign.rb +109 -99
  9. data/lib/pindo/command/jps/upload.rb +31 -4
  10. data/lib/pindo/command/jps.rb +0 -1
  11. data/lib/pindo/command/unity/autobuild.rb +101 -40
  12. data/lib/pindo/command/web/autobuild.rb +96 -28
  13. data/lib/pindo/command.rb +23 -15
  14. data/lib/pindo/module/appselect.rb +14 -0
  15. data/lib/pindo/module/pgyer/pgyerhelper.rb +166 -0
  16. data/lib/pindo/module/task/model/git/git_commit_task.rb +36 -3
  17. data/lib/pindo/module/task/model/git/git_tag_task.rb +5 -4
  18. data/lib/pindo/module/task/model/jps/jps_bind_package_task.rb +38 -19
  19. data/lib/pindo/module/task/model/jps/jps_message_task.rb +9 -6
  20. data/lib/pindo/module/task/model/jps/jps_resign_task.rb +20 -21
  21. data/lib/pindo/module/task/model/jps/jps_upload_media_task.rb +37 -1
  22. data/lib/pindo/module/task/model/jps/jps_upload_task.rb +4 -4
  23. data/lib/pindo/module/task/model/jps/jps_workflow_message_task.rb +1 -1
  24. data/lib/pindo/options/core/option_configuration.rb +4 -36
  25. data/lib/pindo/options/core/option_initializer.rb +6 -3
  26. data/lib/pindo/options/core/option_item.rb +0 -3
  27. data/lib/pindo/options/groups/build_options.rb +3 -2
  28. data/lib/pindo/options/groups/jps_options.rb +30 -10
  29. data/lib/pindo/version.rb +1 -1
  30. metadata +25 -8
  31. data/lib/pindo/command/jps/comment.rb +0 -84
@@ -27,7 +27,7 @@ module Pindo
27
27
  # 消息发送任务优先级为 LOW,确保在上传任务之后执行
28
28
  options[:priority] ||= TaskPriority::LOW
29
29
 
30
- super("JPS 消息发送", options)
30
+ super("JPS 发送包的消息", options)
31
31
  end
32
32
 
33
33
  def validate
@@ -71,11 +71,14 @@ module Pindo
71
71
  # 1. 打印应用版本信息(失败只警告,不中断)
72
72
  print_version_info(pgyer_helper)
73
73
 
74
- # 2. 发送消息给自己(失败只警告,不中断)
75
- send_message_to_self(pgyer_helper)
76
-
77
- # 3. 如果消息类型为 group,发送到测试群(失败只警告,不中断)
78
- send_message_to_group(pgyer_helper) if @send_message_type == 'group'
74
+ # 2. 根据消息类型发送消息(失败只警告,不中断)
75
+ if @send_message_type == 'group'
76
+ # 发送到测试群
77
+ send_message_to_group(pgyer_helper)
78
+ else
79
+ # 发送消息给自己
80
+ send_message_to_self(pgyer_helper)
81
+ end
79
82
 
80
83
  puts " ✅ JPS 消息发送全部完成\n"
81
84
 
@@ -7,22 +7,27 @@ module Pindo
7
7
  # JPS 重签名任务
8
8
  # 从 JPS 平台下载应用并使用指定证书重签名
9
9
  class JPSResignTask < JPSTask
10
- attr_reader :version_info, :cert_id, :send_flag
10
+ attr_reader :version_info, :cert_id
11
11
 
12
12
  # 重试配置(降低重试次数)
13
13
  def self.default_retry_count
14
14
  2 # 默认可以重试 2 次
15
15
  end
16
16
 
17
+ # 任务键
18
+ def self.task_key
19
+ :jps_resign
20
+ end
21
+
17
22
  # 初始化 JPS 重签名任务
18
23
  # @param options [Hash] 选项
19
24
  # @option options [Hash] :app_info_obj JPS 应用信息对象(可选,如为 nil 则延迟获取)
20
25
  # @option options [String] :project_name 项目名称(可选)
21
26
  # @option options [String] :cert_id 重签名使用的 Bundle ID(可选,nil 表示交互选择)
22
- # @option options [Boolean] :send_flag 是否发送到测试群(默认 false,始终会发送给自己)
27
+ # @option options [Boolean] :list_flag 是否列出历史版本(默认 false
23
28
  def initialize(options = {})
24
29
  @cert_id = options[:cert_id]
25
- @send_flag = options[:send_flag] || false
30
+ @list_flag = options[:list_flag] || false
26
31
  @version_info = nil
27
32
 
28
33
  # 设置重签名任务的优先级为 LOW,确保在上传任务之后执行
@@ -38,6 +43,16 @@ module Pindo
38
43
 
39
44
  protected
40
45
 
46
+ # 构建任务参数(供其他任务使用)
47
+ def build_task_param
48
+ return {} unless @status == TaskStatus::SUCCESS && @version_info
49
+
50
+ {
51
+ app_version_info: @version_info,
52
+ cert_id: @cert_id
53
+ }
54
+ end
55
+
41
56
  def do_work
42
57
  pgyer_helper = PgyerHelper.share_instace
43
58
 
@@ -49,7 +64,7 @@ module Pindo
49
64
  # 2. 获取要重签名的版本
50
65
  @version_info = pgyer_helper.get_versioon_history_item(
51
66
  app_info_obj: @app_info_obj,
52
- list_select_flat: false
67
+ list_select_flat: @list_flag # 使用 list_flag
53
68
  )
54
69
 
55
70
  if @version_info.nil?
@@ -99,23 +114,7 @@ module Pindo
99
114
  app_version_info_obj: @version_info
100
115
  )
101
116
 
102
- # 8. 发送消息给自己
103
- pgyer_helper.send_apptest_msg(
104
- app_info_obj: @app_info_obj,
105
- app_version_info_obj: @version_info,
106
- receiveType: "self"
107
- )
108
-
109
- # 9. 如果需要发送到测试群
110
- if @send_flag
111
- pgyer_helper.send_apptest_msg(
112
- app_info_obj: @app_info_obj,
113
- app_version_info_obj: @version_info,
114
- chatEnv: "DevTest",
115
- receiveType: "chat"
116
- )
117
- end
118
-
117
+ # 8. 返回结果(消息发送由外部任务处理)
119
118
  {
120
119
  success: true,
121
120
  version_info: @version_info,
@@ -43,7 +43,7 @@ module Pindo
43
43
  # 设置任务优先级为 LOW,确保在其他任务之后执行
44
44
  options[:priority] ||= TaskPriority::LOW
45
45
 
46
- name = "上传 Media 附件"
46
+ name = "上传 工作流的图片/视频"
47
47
 
48
48
  super(name, options)
49
49
  end
@@ -137,6 +137,9 @@ module Pindo
137
137
  @file_paths = expand_file_paths(@file_paths)
138
138
  end
139
139
 
140
+ # 保存源文件列表(用于上传成功后归档)
141
+ original_source_files = @file_paths.dup
142
+
140
143
  # 5. 自动压缩文件(如果有文件需要上传)
141
144
  if @file_paths.any?
142
145
  @file_paths = compress_media_files(@file_paths, git_root)
@@ -184,6 +187,13 @@ module Pindo
184
187
  # 上传成功后,将重试次数设为 0
185
188
  @retry_count = 0
186
189
 
190
+ # 8. 上传成功后,将源文件移动到备份目录
191
+ # 移动的是压缩前的原始文件,而不是压缩后的临时文件
192
+ # 这样可以避免下次编译时重复压缩和上传
193
+ if original_source_files.any?
194
+ move_uploaded_files_to_backup(original_source_files)
195
+ end
196
+
187
197
  {
188
198
  success: true,
189
199
  success_urls: upload_result[:success_urls],
@@ -247,6 +257,30 @@ module Pindo
247
257
 
248
258
  puts " 📦 归档 #{files.size} 个超时文件 → JPSMedia/#{backup_dir_name}/"
249
259
 
260
+ move_files_to_backup(files, backup_dir_name)
261
+ end
262
+
263
+ # 将已上传文件移动到备份目录
264
+ # @param files [Array<String>] 要移动的文件列表
265
+ def move_uploaded_files_to_backup(files)
266
+ return if files.empty?
267
+
268
+ # 备份目录名:backup_YYYY-MM-DD_HHMMSS
269
+ backup_dir_name = "backup_#{Time.now.strftime('%Y-%m-%d_%H%M%S')}"
270
+
271
+ puts ""
272
+ puts " 📦 归档 #{files.size} 个已上传文件 → JPSMedia/#{backup_dir_name}/"
273
+ puts ""
274
+
275
+ move_files_to_backup(files, backup_dir_name)
276
+ end
277
+
278
+ # 移动文件到备份目录(通用方法)
279
+ # @param files [Array<String>] 要移动的文件列表
280
+ # @param backup_dir_name [String] 备份目录名称
281
+ def move_files_to_backup(files, backup_dir_name)
282
+ return if files.empty?
283
+
250
284
  files.each do |file_path|
251
285
  begin
252
286
  # 在文件所在目录下创建备份子目录
@@ -277,6 +311,8 @@ module Pindo
277
311
  puts " ✗ #{file_name} - #{e.message}"
278
312
  end
279
313
  end
314
+
315
+ puts ""
280
316
  end
281
317
 
282
318
  # 在 JPSMedia 目录下查找 media 文件(仅查找根目录,不递归子目录)
@@ -34,13 +34,13 @@ module Pindo
34
34
 
35
35
  name = case file_type
36
36
  when 'ipa'
37
- "上传 IPA"
37
+ "上传 IPA"
38
38
  when 'apk'
39
- "上传 APK"
39
+ "上传 APK"
40
40
  when 'html'
41
- "上传 WebGL"
41
+ "上传 WebGL"
42
42
  when 'app'
43
- "上传 macOS App"
43
+ "上传 macOS App"
44
44
  else
45
45
  "上传 #{file_type.upcase}"
46
46
  end
@@ -38,7 +38,7 @@ module Pindo
38
38
  # 消息发送任务优先级为 LOW,确保在其他任务之后执行
39
39
  options[:priority] ||= TaskPriority::LOW
40
40
 
41
- super("JPS 工作流消息发送", options)
41
+ super("JPS 发送工作流消息", options)
42
42
  end
43
43
 
44
44
  def validate
@@ -9,11 +9,9 @@ module Pindo
9
9
  # 初始化
10
10
  # @param available_options [Array<OptionItem>] 可用参数列表
11
11
  # @param raw_values [Hash] 原始参数值
12
- # @param command_instance [Object, nil] 命令实例(用于 value_block)
13
- def initialize(available_options, raw_values = {}, command_instance: nil)
12
+ def initialize(available_options, raw_values = {})
14
13
  @available_options = available_options
15
14
  @raw_values = raw_values
16
- @command_instance = command_instance
17
15
  @values = {}
18
16
  @options_map = build_options_map
19
17
 
@@ -94,16 +92,13 @@ module Pindo
94
92
  # 2. 应用原始值(命令行参数和环境变量)
95
93
  apply_raw_values
96
94
 
97
- # 3. 应用 value_block(交互式获取值)
98
- apply_value_blocks
99
-
100
- # 4. 类型转换
95
+ # 3. 类型转换
101
96
  convert_types
102
97
 
103
- # 5. 验证必填参数
98
+ # 4. 验证必填参数
104
99
  validate_required
105
100
 
106
- # 6. 自定义验证
101
+ # 5. 自定义验证
107
102
  validate_custom
108
103
  end
109
104
 
@@ -130,33 +125,6 @@ module Pindo
130
125
  end
131
126
  end
132
127
 
133
- # 应用 value_block(交互式获取值)
134
- # 优先级:命令行参数 > 缓存(已在 raw_values) > value_block > 默认值
135
- def apply_value_blocks
136
- # 检测是否是 help 请求,跳过交互式选择
137
- return if ARGV.include?('--help') || ARGV.include?('-h')
138
-
139
- @available_options.each do |item|
140
- # 只有当参数没有值时,才调用 value_block
141
- next if @values.key?(item.key) && !@values[item.key].nil?
142
- next unless item.value_block
143
-
144
- begin
145
- # 调用 value_block 获取值
146
- # 如果 value_block 接受参数,则传入命令实例
147
- value = if item.value_block.arity > 0
148
- item.value_block.call(@command_instance)
149
- else
150
- item.value_block.call
151
- end
152
- @values[item.key] = value unless value.nil?
153
- rescue StandardError => e
154
- # value_block 执行失败,记录错误但不中断流程
155
- puts "[OptionConfiguration] value_block 执行失败 (#{item.key}): #{e.message}"
156
- end
157
- end
158
- end
159
-
160
128
  # 类型转换
161
129
  def convert_types
162
130
  @available_options.each do |item|
@@ -21,7 +21,10 @@ module Pindo
21
21
  raw_values = OptionValueParser.parse(argv, option_items)
22
22
 
23
23
  # 2. 如果启用缓存,合并缓存值到 raw_values
24
- if enable_cache
24
+ # 注意:如果是 --help 参数,跳过缓存逻辑
25
+ is_help_flag = argv.flag?('help')
26
+
27
+ if enable_cache && !is_help_flag
25
28
  state = GlobalOptionsState.instance
26
29
  state.prepare_cache(command_name, directory || Dir.pwd)
27
30
  cached_values = state.load_cached_values
@@ -33,8 +36,8 @@ module Pindo
33
36
  end
34
37
  end
35
38
 
36
- # 3. 创建参数配置(自动处理验证等,传入命令实例用于 value_block)
37
- options = OptionConfiguration.new(option_items, raw_values, command_instance: command_instance)
39
+ # 3. 创建参数配置(自动处理验证等)
40
+ options = OptionConfiguration.new(option_items, raw_values)
38
41
 
39
42
  # 4. 设置全局状态
40
43
  GlobalOptionsState.instance.set_command(
@@ -14,7 +14,6 @@ module Pindo
14
14
  attr_accessor :optional # Boolean: 是否可选(默认为 true)
15
15
  attr_accessor :cacheable # Boolean: 是否存入缓存(默认为 true)
16
16
  attr_accessor :verify_block # Proc: 自定义验证逻辑
17
- attr_accessor :value_block # Proc: 获取参数值的 block(交互式输入)
18
17
  attr_accessor :example # String: 使用示例
19
18
 
20
19
  # Boolean 类型标记
@@ -36,7 +35,6 @@ module Pindo
36
35
  @optional = options.fetch(:optional, true)
37
36
  @cacheable = options.fetch(:cacheable, false) # 默认不存入缓存
38
37
  @verify_block = options[:verify_block]
39
- @value_block = options[:value_block]
40
38
  @example = options[:example]
41
39
 
42
40
  validate_type!
@@ -129,7 +127,6 @@ module Pindo
129
127
  optional: overrides.key?(:optional) ? overrides[:optional] : @optional,
130
128
  cacheable: overrides.key?(:cacheable) ? overrides[:cacheable] : @cacheable,
131
129
  verify_block: overrides[:verify_block] || @verify_block,
132
- value_block: overrides[:value_block] || @value_block,
133
130
  example: overrides[:example] || @example
134
131
  )
135
132
  end
@@ -37,8 +37,9 @@ module Pindo
37
37
  optional: true,
38
38
  cacheable: true, # 存入文件缓存
39
39
  verify_block: proc do |value|
40
- unless value =~ /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+$/i
41
- raise "Package Name 格式错误: #{value},应该类似 com.example.app"
40
+ # 允许标准格式(com.example.app)或带通配符格式(com.example.*)
41
+ unless value =~ /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_\*]*)+$/i
42
+ raise "Package Name 格式错误: #{value},应该类似 com.example.app 或 com.example.*"
42
43
  end
43
44
  end,
44
45
  example: 'pindo android autobuild --bundle_name=com.example.app'
@@ -61,16 +61,6 @@ module Pindo
61
61
  example: 'pindo jps upload --resign'
62
62
  ),
63
63
 
64
- certid: OptionItem.new(
65
- key: :certid,
66
- name: '重签名Bundle ID',
67
- description: '设置重签名的Bundle ID',
68
- type: String,
69
- env_name: 'PINDO_CERT_ID',
70
- optional: true,
71
- example: 'pindo jps resign --certid=com.test.bundleid'
72
- ),
73
-
74
64
  media: OptionItem.new(
75
65
  key: :media,
76
66
  name: '上传媒体附件',
@@ -79,6 +69,36 @@ module Pindo
79
69
  env_name: 'PINDO_UPLOAD_MEDIA',
80
70
  optional: true,
81
71
  example: 'pindo ios autobuild --media'
72
+ ),
73
+
74
+ bind: OptionItem.new(
75
+ key: :bind,
76
+ name: '绑定Git Commit',
77
+ description: '上传完成后,将 Git commit 绑定到已上传的项目包',
78
+ type: OptionItem::Boolean,
79
+ env_name: 'PINDO_BIND_COMMIT',
80
+ optional: true,
81
+ example: 'pindo ios autobuild --bind'
82
+ ),
83
+
84
+ list: OptionItem.new(
85
+ key: :list,
86
+ name: '列出历史版本',
87
+ description: '列出历史上传记录并选择',
88
+ type: OptionItem::Boolean,
89
+ env_name: 'PINDO_LIST_VERSIONS',
90
+ optional: true,
91
+ example: 'pindo jps apptest --list'
92
+ ),
93
+
94
+ group: OptionItem.new(
95
+ key: :group,
96
+ name: '发送到测试组',
97
+ description: '发送消息到测试组(DevTest)而不是只发给自己',
98
+ type: OptionItem::Boolean,
99
+ env_name: 'PINDO_SEND_GROUP',
100
+ optional: true,
101
+ example: 'pindo jps apptest --group'
82
102
  )
83
103
  }
84
104
  end
data/lib/pindo/version.rb CHANGED
@@ -6,7 +6,7 @@ require 'time'
6
6
 
7
7
  module Pindo
8
8
 
9
- VERSION = "5.14.5"
9
+ VERSION = "5.14.7"
10
10
 
11
11
  class VersionCheck
12
12
  RUBYGEMS_API = 'https://rubygems.org/api/v1/gems/pindo.json'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pindo
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.14.5
4
+ version: 5.14.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - wade
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2025-12-31 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: claide
@@ -33,6 +33,9 @@ dependencies:
33
33
  name: cocoapods
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
+ - - "~>"
37
+ - !ruby/object:Gem::Version
38
+ version: '1.15'
36
39
  - - ">="
37
40
  - !ruby/object:Gem::Version
38
41
  version: 1.15.2
@@ -40,6 +43,9 @@ dependencies:
40
43
  prerelease: false
41
44
  version_requirements: !ruby/object:Gem::Requirement
42
45
  requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.15'
43
49
  - - ">="
44
50
  - !ruby/object:Gem::Version
45
51
  version: 1.15.2
@@ -47,6 +53,9 @@ dependencies:
47
53
  name: fastlane
48
54
  requirement: !ruby/object:Gem::Requirement
49
55
  requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '2.220'
50
59
  - - ">="
51
60
  - !ruby/object:Gem::Version
52
61
  version: 2.220.0
@@ -54,6 +63,9 @@ dependencies:
54
63
  prerelease: false
55
64
  version_requirements: !ruby/object:Gem::Requirement
56
65
  requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.220'
57
69
  - - ">="
58
70
  - !ruby/object:Gem::Version
59
71
  version: 2.220.0
@@ -155,6 +167,9 @@ dependencies:
155
167
  name: nokogiri
156
168
  requirement: !ruby/object:Gem::Requirement
157
169
  requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '1.15'
158
173
  - - ">="
159
174
  - !ruby/object:Gem::Version
160
175
  version: 1.15.4
@@ -162,6 +177,9 @@ dependencies:
162
177
  prerelease: false
163
178
  version_requirements: !ruby/object:Gem::Requirement
164
179
  requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: '1.15'
165
183
  - - ">="
166
184
  - !ruby/object:Gem::Version
167
185
  version: 1.15.4
@@ -171,20 +189,20 @@ dependencies:
171
189
  requirements:
172
190
  - - "~>"
173
191
  - !ruby/object:Gem::Version
174
- version: '1.8'
192
+ version: '1.9'
175
193
  - - ">="
176
194
  - !ruby/object:Gem::Version
177
- version: 1.8.1
195
+ version: 1.9.0
178
196
  type: :runtime
179
197
  prerelease: false
180
198
  version_requirements: !ruby/object:Gem::Requirement
181
199
  requirements:
182
200
  - - "~>"
183
201
  - !ruby/object:Gem::Version
184
- version: '1.8'
202
+ version: '1.9'
185
203
  - - ">="
186
204
  - !ruby/object:Gem::Version
187
- version: 1.8.1
205
+ version: 1.9.0
188
206
  - !ruby/object:Gem::Dependency
189
207
  name: bundler
190
208
  requirement: !ruby/object:Gem::Requirement
@@ -318,7 +336,6 @@ files:
318
336
  - lib/pindo/command/jps.rb
319
337
  - lib/pindo/command/jps/apptest.rb
320
338
  - lib/pindo/command/jps/bind.rb
321
- - lib/pindo/command/jps/comment.rb
322
339
  - lib/pindo/command/jps/download.rb
323
340
  - lib/pindo/command/jps/login.rb
324
341
  - lib/pindo/command/jps/media.rb
@@ -490,7 +507,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
490
507
  - !ruby/object:Gem::Version
491
508
  version: 3.0.0
492
509
  requirements: []
493
- rubygems_version: 4.0.3
510
+ rubygems_version: 3.6.3
494
511
  specification_version: 4
495
512
  summary: easy work
496
513
  test_files: []
@@ -1,84 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'pindo/module/pgyer/pgyerhelper'
4
-
5
-
6
- module Pindo
7
- class Command
8
- class Jps < Command
9
- class Comment < Jps
10
-
11
- self.summary = '修改jps中已经上传安装包的备注信息'
12
-
13
- self.description = <<-DESC
14
- 修改jps中已经上传安装包的备注信息。
15
-
16
- 支持功能:
17
-
18
- * 修改版本备注
19
- * 查看历史版本
20
- * 选择指定版本
21
-
22
- 使用示例:
23
-
24
- $ pindo jps comment # 修改当前目录项目的最新版本备注
25
-
26
- $ pindo jps comment --proj=demo # 修改指定项目的版本备注
27
-
28
- $ pindo jps comment --list # 列出历史版本供选择修改
29
- DESC
30
-
31
- self.arguments = [
32
-
33
- ]
34
-
35
- def self.options
36
- [
37
- ['--login', '强制再次登录jps网站'],
38
- ['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo jps comment --proj=prancksoundv4'],
39
- ['--list', '列出上传记录并选择,用法:pindo jps comment --list'],
40
-
41
- ].concat(super)
42
- end
43
-
44
-
45
-
46
- def initialize(argv)
47
-
48
- @args_login_flag = argv.flag?('login', false)
49
- @args_list_flag = argv.flag?('list', false)
50
- @args_proj_name = argv.option('proj')
51
-
52
- super(argv)
53
- @additional_args = argv.remainder!
54
- end
55
-
56
- def validate!
57
-
58
- super
59
- end
60
-
61
- def run
62
-
63
- PgyerHelper.share_instace.setForeLogin(beforeLogin:@args_login_flag)
64
- app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:@args_proj_name)
65
-
66
- if app_info_obj.nil?
67
- raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, jps网站没有该App"
68
- end
69
-
70
-
71
- version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
72
-
73
- if version_item_obj.nil?
74
- raise Informative, "没有找到上传记录"
75
- end
76
-
77
- PgyerHelper.share_instace.modify_coment(app_info_obj:app_info_obj, version_item_obj:version_item_obj)
78
-
79
- end
80
-
81
- end
82
- end
83
- end
84
- end