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.
- checksums.yaml +4 -4
- data/lib/pindo/base/git_handler.rb +140 -65
- data/lib/pindo/command/android/autobuild.rb +101 -33
- data/lib/pindo/command/appstore/bundleid.rb +1 -1
- data/lib/pindo/command/appstore/pem.rb +1 -1
- data/lib/pindo/command/ios/autobuild.rb +116 -56
- data/lib/pindo/command/jps/apptest.rb +129 -50
- data/lib/pindo/command/jps/resign.rb +109 -99
- data/lib/pindo/command/jps/upload.rb +31 -4
- data/lib/pindo/command/jps.rb +0 -1
- data/lib/pindo/command/unity/autobuild.rb +101 -40
- data/lib/pindo/command/web/autobuild.rb +96 -28
- data/lib/pindo/command.rb +23 -15
- data/lib/pindo/module/appselect.rb +14 -0
- data/lib/pindo/module/pgyer/pgyerhelper.rb +166 -0
- data/lib/pindo/module/task/model/git/git_commit_task.rb +36 -3
- data/lib/pindo/module/task/model/git/git_tag_task.rb +5 -4
- data/lib/pindo/module/task/model/jps/jps_bind_package_task.rb +38 -19
- data/lib/pindo/module/task/model/jps/jps_message_task.rb +9 -6
- data/lib/pindo/module/task/model/jps/jps_resign_task.rb +20 -21
- data/lib/pindo/module/task/model/jps/jps_upload_media_task.rb +37 -1
- data/lib/pindo/module/task/model/jps/jps_upload_task.rb +4 -4
- data/lib/pindo/module/task/model/jps/jps_workflow_message_task.rb +1 -1
- data/lib/pindo/options/core/option_configuration.rb +4 -36
- data/lib/pindo/options/core/option_initializer.rb +6 -3
- data/lib/pindo/options/core/option_item.rb +0 -3
- data/lib/pindo/options/groups/build_options.rb +3 -2
- data/lib/pindo/options/groups/jps_options.rb +30 -10
- data/lib/pindo/version.rb +1 -1
- metadata +25 -8
- 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
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
|
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] :
|
|
27
|
+
# @option options [Boolean] :list_flag 是否列出历史版本(默认 false)
|
|
23
28
|
def initialize(options = {})
|
|
24
29
|
@cert_id = options[:cert_id]
|
|
25
|
-
@
|
|
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:
|
|
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 = "上传
|
|
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
|
|
@@ -9,11 +9,9 @@ module Pindo
|
|
|
9
9
|
# 初始化
|
|
10
10
|
# @param available_options [Array<OptionItem>] 可用参数列表
|
|
11
11
|
# @param raw_values [Hash] 原始参数值
|
|
12
|
-
|
|
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.
|
|
98
|
-
apply_value_blocks
|
|
99
|
-
|
|
100
|
-
# 4. 类型转换
|
|
95
|
+
# 3. 类型转换
|
|
101
96
|
convert_types
|
|
102
97
|
|
|
103
|
-
#
|
|
98
|
+
# 4. 验证必填参数
|
|
104
99
|
validate_required
|
|
105
100
|
|
|
106
|
-
#
|
|
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
|
-
|
|
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.
|
|
37
|
-
options = OptionConfiguration.new(option_items, raw_values
|
|
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
|
-
|
|
41
|
-
|
|
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
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.
|
|
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:
|
|
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.
|
|
192
|
+
version: '1.9'
|
|
175
193
|
- - ">="
|
|
176
194
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: 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.
|
|
202
|
+
version: '1.9'
|
|
185
203
|
- - ">="
|
|
186
204
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 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:
|
|
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
|