pindo 4.6.9 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pindo/base/aeshelper.rb +48 -2
- data/lib/pindo/base/funlog.rb +89 -0
- data/lib/pindo/base/githelper.rb +30 -12
- data/lib/pindo/base/plaininformative.rb +3 -0
- data/lib/pindo/base/standarderror.rb +1 -0
- data/lib/pindo/base/xcodeconst.rb +251 -0
- data/lib/pindo/client/applovinclient.rb +6 -3
- data/lib/pindo/client/aws3sclient.rb +33 -46
- data/lib/pindo/client/bossclient.rb +1 -1
- data/lib/pindo/client/pgyerclient.rb +78 -14
- data/lib/pindo/command/appstore/iap.rb +43 -0
- data/lib/pindo/command/appstore/itcapp.rb +41 -0
- data/lib/pindo/command/appstore/metadata.rb +43 -0
- data/lib/pindo/command/appstore/screenshots.rb +43 -0
- data/lib/pindo/command/appstore/upload.rb +40 -0
- data/lib/pindo/command/appstore.rb +17 -0
- data/lib/pindo/command/deploy/build.rb +109 -0
- data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
- data/lib/pindo/command/deploy/cert.rb +179 -0
- data/lib/pindo/command/deploy/configproj.rb +105 -0
- data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
- data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
- data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
- data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
- data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
- data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
- data/lib/pindo/command/deploy.rb +44 -0
- data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
- data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
- data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
- data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
- data/lib/pindo/command/dev/pgyercert.rb +75 -0
- data/lib/pindo/command/dev.rb +25 -0
- data/lib/pindo/command/env.rb +17 -0
- data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
- data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
- data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
- data/lib/pindo/command/ipa.rb +16 -0
- data/lib/pindo/{lib → command/lib}/update.rb +19 -10
- data/lib/pindo/command/lib.rb +16 -0
- data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
- data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
- data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
- data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
- data/lib/pindo/command/pgyer/resign.rb +111 -0
- data/lib/pindo/command/pgyer/upload.rb +123 -0
- data/lib/pindo/command/pgyer.rb +18 -0
- data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
- data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
- data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
- data/lib/pindo/command/utils/icon.rb +81 -0
- data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
- data/lib/pindo/command/utils.rb +26 -0
- data/lib/pindo/command.rb +23 -26
- data/lib/pindo/module/build/swarkhelper.rb +95 -0
- data/lib/pindo/module/cert/certhelper.rb +176 -0
- data/lib/pindo/module/cert/keychainhelper.rb +138 -0
- data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
- data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
- data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
- data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
- data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
- data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
- data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
- data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
- data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
- data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
- data/lib/pindo/options/appconfigoptions.rb +1 -0
- data/lib/pindo/options/deployoptions.rb +38 -41
- data/lib/pindo/version.rb +1 -1
- metadata +109 -97
- data/lib/pindo/deploy/Fastfile +0 -233
- data/lib/pindo/deploy/build.rb +0 -167
- data/lib/pindo/deploy/cert.rb +0 -508
- data/lib/pindo/deploy/configproj.rb +0 -89
- data/lib/pindo/deploy.rb +0 -44
- data/lib/pindo/dev.rb +0 -23
- data/lib/pindo/env/flutter.rb +0 -59
- data/lib/pindo/env/flutter.sh +0 -116
- data/lib/pindo/env.rb +0 -17
- data/lib/pindo/ipa.rb +0 -22
- data/lib/pindo/lib.rb +0 -18
- data/lib/pindo/module/buildconfighelper.rb +0 -13
- data/lib/pindo/module/buildhelper.rb +0 -76
- data/lib/pindo/module/config_project.sh +0 -143
- data/lib/pindo/module/configprojhelper.rb +0 -631
- data/lib/pindo/module/icon_contents.json +0 -116
- data/lib/pindo/module/imessage_icon.json +0 -91
- data/lib/pindo/module/imgset_contents.json +0 -21
- data/lib/pindo/module/launchimg_contents.json +0 -21
- data/lib/pindo/module/xcodebuildpre.rb +0 -258
- data/lib/pindo/pgyer/upload.rb +0 -234
- data/lib/pindo/pgyer.rb +0 -17
- data/lib/pindo/utils/icon.rb +0 -91
- data/lib/pindo/utils/icon.sh +0 -133
- data/lib/pindo/utils/podindex.rb +0 -56
- data/lib/pindo/utils/podindex.sh +0 -30
- data/lib/pindo/utils.rb +0 -29
- /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
- /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
- /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
- /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
- /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
- /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
- /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
- /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
- /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
- /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
data/lib/pindo/pgyer/upload.rb
DELETED
@@ -1,234 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'highline/import'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'json'
|
6
|
-
require 'faraday'
|
7
|
-
require 'pindo/module/pgyerhelper.rb'
|
8
|
-
|
9
|
-
|
10
|
-
module Pindo
|
11
|
-
class Command
|
12
|
-
class Pgyer < Command
|
13
|
-
class Upload < Pgyer
|
14
|
-
|
15
|
-
|
16
|
-
self.summary = '上传ipa包到pgyer测试网站'
|
17
|
-
|
18
|
-
self.description = <<-DESC
|
19
|
-
上传ipa包到pgyer。用法:例如:pindo pgyer upload path/to/demo.ipa
|
20
|
-
DESC
|
21
|
-
|
22
|
-
self.arguments = [
|
23
|
-
CLAide::Argument.new('path/to/demo.ipa', false),
|
24
|
-
]
|
25
|
-
|
26
|
-
def self.options
|
27
|
-
[
|
28
|
-
['--login', '强制再次登录pgyer网站,用法: pindo pgyer upload --login'],
|
29
|
-
['--ipa', '强制指定上传的ipa文件: pindo pgyer upload --ipa=path/to/demo.ipa'],
|
30
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo pgyer upload --proj=prancksoundv4'],
|
31
|
-
['--attach', '指定需要和ipa一起上传的附件: pindo pgyer upload --attach=path/to/attach.zip'],
|
32
|
-
['--send', '上传到之后是否发送测试信息,用法:pindo pgyer upload --send'],
|
33
|
-
['--desc', '指定上传的备注信息: -pindo pgyer upload -desc="1.upload message"'],
|
34
|
-
|
35
|
-
].concat(super)
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
def initialize(argv)
|
40
|
-
|
41
|
-
@args_ipa_file = argv.shift_argument
|
42
|
-
@args_ipa_file = argv.option('ipa')
|
43
|
-
|
44
|
-
if @args_ipa_file && !@args_ipa_file.empty?
|
45
|
-
@args_ipa_file = @args_ipa_file.strip.gsub(/\"/, '')
|
46
|
-
end
|
47
|
-
@args_login_flag = argv.flag?('login', false)
|
48
|
-
@args_send_flag = argv.flag?('send', false)
|
49
|
-
@args_proj_name = argv.option('proj')
|
50
|
-
@args_attach_name = argv.option('attach')
|
51
|
-
@args_upload_desc = argv.option('desc')
|
52
|
-
if @args_upload_desc && !@args_upload_desc.empty?
|
53
|
-
@args_upload_desc = @args_upload_desc.strip.gsub(/\"/, '')
|
54
|
-
end
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
super(argv)
|
59
|
-
@additional_args = argv.remainder!
|
60
|
-
end
|
61
|
-
|
62
|
-
def validate!
|
63
|
-
|
64
|
-
if @args_proj_name.nil?
|
65
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
66
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
67
|
-
if !proj_name.nil?
|
68
|
-
puts
|
69
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
70
|
-
if answer
|
71
|
-
@args_proj_name = proj_name
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
super
|
77
|
-
end
|
78
|
-
|
79
|
-
def run
|
80
|
-
|
81
|
-
current_project_dir = Dir.pwd
|
82
|
-
is_in_project_dir = false
|
83
|
-
|
84
|
-
if @args_ipa_file.nil? || !File.exist?(@args_ipa_file)
|
85
|
-
|
86
|
-
build_path = File.join(current_project_dir, "build", "*.ipa")
|
87
|
-
@args_ipa_file = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
88
|
-
if @args_ipa_file.nil?
|
89
|
-
build_path = File.join(current_project_dir, "*.ipa")
|
90
|
-
@args_ipa_file = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
91
|
-
end
|
92
|
-
if !@args_ipa_file.nil?
|
93
|
-
answer = agree("需要上传的ipa文件是: #{@args_ipa_file} ?(Y/n)")
|
94
|
-
if !answer
|
95
|
-
@args_ipa_file = nil
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
if !@args_ipa_file.nil? && File.exist?(@args_ipa_file)
|
100
|
-
is_in_project_dir = true
|
101
|
-
else
|
102
|
-
@args_ipa_file = ask('需要上传的IPA文件:') || nil
|
103
|
-
@args_ipa_file = @args_ipa_file.strip.gsub(/\\ /, ' ')
|
104
|
-
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
if !File.exist?(@args_ipa_file)
|
109
|
-
raise Informative, "#{@args_ipa_file} 文件不存在"
|
110
|
-
end
|
111
|
-
|
112
|
-
|
113
|
-
@pgyer_client = PgyerClient.new
|
114
|
-
app_info_obj = nil
|
115
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
116
|
-
if login_success
|
117
|
-
PgyerHelper.share_instace.get_app_list_in_pgyer(client:@pgyer_client)
|
118
|
-
if !@args_proj_name.nil?
|
119
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
120
|
-
end
|
121
|
-
|
122
|
-
if app_info_obj.nil?
|
123
|
-
@args_proj_name = ask('请输入Pyger上的App代号(大小写空格忽略):') || nil
|
124
|
-
@args_proj_name = @args_proj_name.strip
|
125
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
if app_info_obj.nil?
|
130
|
-
raise Informative, "#{@args_proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
131
|
-
end
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
if @args_upload_desc.nil?
|
136
|
-
if is_in_project_dir
|
137
|
-
commit_id_info = git_latest_commit_id(local_repo_dir:current_project_dir)
|
138
|
-
@args_upload_desc = "commit " + commit_id_info
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
|
143
|
-
addtach_file = nil
|
144
|
-
if is_in_project_dir && File.exist?(File.join(current_project_dir, "VMData"))
|
145
|
-
|
146
|
-
server_file_directory = Dir.glob(File.join(current_project_dir, "VMData/Archives/*")).max_by {|f| File.mtime(f)}
|
147
|
-
zip_base_name = File.basename(server_file_directory)
|
148
|
-
|
149
|
-
server_zipfile_name = File.join(current_project_dir, "VMData", zip_base_name+".zip")
|
150
|
-
|
151
|
-
if File.exist?(server_zipfile_name)
|
152
|
-
FileUtils.rm_rf(server_zipfile_name)
|
153
|
-
end
|
154
|
-
Zip::File.open(server_zipfile_name, Zip::File::CREATE) do |zipfile|
|
155
|
-
Dir.chdir server_file_directory
|
156
|
-
Dir.glob("**/*").reject {|fn| File.directory?(fn) }.each do |file|
|
157
|
-
zipfile.add(file.sub(server_file_directory + '/', ''), file)
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
addtach_file = server_zipfile_name
|
162
|
-
Dir.chdir current_project_dir
|
163
|
-
end
|
164
|
-
|
165
|
-
args_ipa_file_dir = File.expand_path(File::dirname(@args_ipa_file))
|
166
|
-
@args_ipa_file=File.join(args_ipa_file_dir, File.basename(@args_ipa_file))
|
167
|
-
|
168
|
-
puts "==========================="
|
169
|
-
puts " 准备上传 ..."
|
170
|
-
puts "==========================="
|
171
|
-
puts
|
172
|
-
puts "上传项目: #{@args_proj_name}"
|
173
|
-
puts "上传备注: #{@args_upload_desc}"
|
174
|
-
|
175
|
-
|
176
|
-
aws_client = AWSS3Client.new
|
177
|
-
upload_res = aws_client.upload_file(binary_file:@args_ipa_file)
|
178
|
-
|
179
|
-
attach_key_url = nil
|
180
|
-
attachFileUrls = []
|
181
|
-
|
182
|
-
|
183
|
-
begin
|
184
|
-
if !addtach_file.nil? && File.exist?(addtach_file)
|
185
|
-
puts "存在附件, 继续上传附件..."
|
186
|
-
attach_key_url = aws_client.upload_file(binary_file:addtach_file, isAttach:true)
|
187
|
-
end
|
188
|
-
|
189
|
-
if !attach_key_url.nil?
|
190
|
-
attachFileUrls << attach_key_url
|
191
|
-
end
|
192
|
-
|
193
|
-
rescue => error
|
194
|
-
puts "附件上传失败".bold.red
|
195
|
-
end
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
app_version_info_obj = nil
|
200
|
-
|
201
|
-
if !upload_res.nil? && !app_info_obj.nil?
|
202
|
-
|
203
|
-
puts attachFileUrls
|
204
|
-
|
205
|
-
result_data = @pgyer_client.post_app_update_binary(appId:app_info_obj["appId"], params:{
|
206
|
-
description: @args_upload_desc,
|
207
|
-
s3Url: upload_res,
|
208
|
-
attachFileUrls:attachFileUrls
|
209
|
-
})
|
210
|
-
|
211
|
-
|
212
|
-
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
213
|
-
puts
|
214
|
-
puts "上传成功 !!!"
|
215
|
-
puts
|
216
|
-
puts
|
217
|
-
|
218
|
-
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"], msg_from: @pgyer_client.token["username"])
|
219
|
-
|
220
|
-
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
221
|
-
if @args_send_flag
|
222
|
-
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
|
-
end
|
227
|
-
|
228
|
-
|
229
|
-
end
|
230
|
-
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|
234
|
-
end
|
data/lib/pindo/pgyer.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'pindo/pgyer/login'
|
3
|
-
require 'pindo/pgyer/upload'
|
4
|
-
require 'pindo/pgyer/download'
|
5
|
-
require 'pindo/pgyer/comment'
|
6
|
-
require 'pindo/pgyer/apptest'
|
7
|
-
|
8
|
-
module Pindo
|
9
|
-
class Command
|
10
|
-
|
11
|
-
class Pgyer < Command
|
12
|
-
self.abstract_command = true
|
13
|
-
self.summary = '操作pgyer网站的相关命令'
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
data/lib/pindo/utils/icon.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'highline/import'
|
4
|
-
require 'fileutils'
|
5
|
-
require 'json'
|
6
|
-
|
7
|
-
module Pindo
|
8
|
-
class Command
|
9
|
-
class Utils < Command
|
10
|
-
class Icon < Utils
|
11
|
-
|
12
|
-
self.summary = '根据1024*1024icon生成Xcode标准icon文件'
|
13
|
-
|
14
|
-
self.description = <<-DESC
|
15
|
-
根据1024*1024icon生成Xcode标准icon文件,用法:pindo utils icon path/to/demo.png
|
16
|
-
DESC
|
17
|
-
|
18
|
-
|
19
|
-
self.arguments = [
|
20
|
-
CLAide::Argument.new('path/to/demo.png', true),
|
21
|
-
]
|
22
|
-
|
23
|
-
def self.options
|
24
|
-
[
|
25
|
-
|
26
|
-
].concat(super)
|
27
|
-
end
|
28
|
-
|
29
|
-
def initialize(argv)
|
30
|
-
@icon_name = argv.shift_argument
|
31
|
-
super(argv)
|
32
|
-
@additional_args = argv.remainder!
|
33
|
-
end
|
34
|
-
|
35
|
-
def validate!
|
36
|
-
super
|
37
|
-
|
38
|
-
help! 'Need a icon name' if @icon_name.nil? || @icon_name.empty?
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
def run
|
43
|
-
utils_icon()
|
44
|
-
end
|
45
|
-
|
46
|
-
def utils_icon
|
47
|
-
|
48
|
-
imessage_icon_dir = File.dirname(@icon_name)
|
49
|
-
imessage_icon = File.join(imessage_icon_dir, "icon1024_768.png")
|
50
|
-
|
51
|
-
|
52
|
-
time = Time.now.strftime('%m%d-%H%M%S')
|
53
|
-
new_icon_dir = File.join(Dir.pwd, "icon_"+time)
|
54
|
-
|
55
|
-
if File.exist?(imessage_icon)
|
56
|
-
command = 'sh ' + File.join(File.expand_path('./', __dir__), 'icon.sh') + ' -i "' + @icon_name+ '" -a "' + imessage_icon + '" -o "' + new_icon_dir + '"'
|
57
|
-
else
|
58
|
-
command = 'sh ' + File.join(File.expand_path('./', __dir__), 'icon.sh') + ' -i "' + @icon_name+ '" -o "' + new_icon_dir + '"'
|
59
|
-
end
|
60
|
-
puts command
|
61
|
-
system command
|
62
|
-
|
63
|
-
|
64
|
-
new_proj_file = File.join(new_icon_dir, "Contents.json")
|
65
|
-
default_json_file = File.join(File.expand_path('../', __dir__), 'module/icon_contents.json')
|
66
|
-
new_proj_file_json = JSON.parse(File.read(default_json_file))
|
67
|
-
File.open(new_proj_file, "w") do |f|
|
68
|
-
f.write(JSON.pretty_generate(new_proj_file_json))
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
|
-
imessage_icon_dir = File.join(new_icon_dir, "imessage")
|
73
|
-
if File.exist?(imessage_icon_dir)
|
74
|
-
new_proj_file = File.join(new_icon_dir, "imessage/Contents.json")
|
75
|
-
default_json_file = File.join(File.expand_path('../', __dir__), 'module/imessage_icon.json')
|
76
|
-
new_proj_file_json = JSON.parse(File.read(default_json_file))
|
77
|
-
File.open(new_proj_file, "w") do |f|
|
78
|
-
f.write(JSON.pretty_generate(new_proj_file_json))
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
system "open #{new_icon_dir}"
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
data/lib/pindo/utils/icon.sh
DELETED
@@ -1,133 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
INPUT_IMESSAGE_FILE=
|
5
|
-
|
6
|
-
while getopts "i:o:a:" opt
|
7
|
-
do
|
8
|
-
case $opt in
|
9
|
-
i)
|
10
|
-
INPUT_FILE=$OPTARG
|
11
|
-
echo "Input File: $INPUT_FILE"
|
12
|
-
;;
|
13
|
-
a)
|
14
|
-
INPUT_IMESSAGE_FILE=$OPTARG
|
15
|
-
echo "INPUT_IMESSAGE_FILE: $INPUT_IMESSAGE_FILE"
|
16
|
-
;;
|
17
|
-
o)
|
18
|
-
OUTPUT_DIR=$OPTARG
|
19
|
-
echo "Output Dir: $OUTPUT_DIR"
|
20
|
-
;;
|
21
|
-
*)
|
22
|
-
echo "Use with -i name -o prefix"
|
23
|
-
exit 1
|
24
|
-
;;
|
25
|
-
esac
|
26
|
-
done
|
27
|
-
|
28
|
-
DIR=`dirname "$INPUT_FILE"`
|
29
|
-
TEMP_DIR="$DIR"/iconres_$(date +%Y%m%d%H%M%S)
|
30
|
-
|
31
|
-
if [[ "$OUTPUT_DIR" == "" ]]; then
|
32
|
-
OUTPUT_DIR="$TEMP_DIR"
|
33
|
-
fi
|
34
|
-
|
35
|
-
echo
|
36
|
-
|
37
|
-
if ! [[ -d "$OUTPUT_DIR" ]]; then
|
38
|
-
mkdir "$OUTPUT_DIR"
|
39
|
-
fi
|
40
|
-
|
41
|
-
|
42
|
-
if [[ "$INPUT_IMESSAGE_FILE" != "" ]]; then
|
43
|
-
if ! [[ -d "$OUTPUT_DIR/imessage" ]]; then
|
44
|
-
mkdir "$OUTPUT_DIR/imessage"
|
45
|
-
fi
|
46
|
-
fi
|
47
|
-
|
48
|
-
|
49
|
-
# function mkIconAndroid() {
|
50
|
-
# if [[ -z "$@" ]]; then
|
51
|
-
# echo "Input file missing"
|
52
|
-
# else
|
53
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 32 32 $INPUT_FILE --out "$OUTPUT_DIR"/icon_ldpi.png
|
54
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 36 36 $INPUT_FILE --out "$OUTPUT_DIR"/icon.png
|
55
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 48 48 $INPUT_FILE --out "$OUTPUT_DIR"/icon_mdpi.png
|
56
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 72 72 $INPUT_FILE --out "$OUTPUT_DIR"/icon_hdpi.png
|
57
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 96 96 $INPUT_FILE --out "$OUTPUT_DIR"/icon_xhdpi.png
|
58
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 144 144 $INPUT_FILE --out "$OUTPUT_DIR"/icon_xxhdpi.png
|
59
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 192 192 $INPUT_FILE --out "$OUTPUT_DIR"/icon_xxxhdpi.png
|
60
|
-
# fi
|
61
|
-
# }
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
function ceaate_ios_icon() {
|
66
|
-
if [[ -z "$@" ]]; then
|
67
|
-
echo "Input file missing"
|
68
|
-
else
|
69
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 20 20 "$1" --out "$OUTPUT_DIR"/icon20@1x.png
|
70
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 40 40 "$1" --out "$OUTPUT_DIR"/icon20@2x.png
|
71
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 60 60 "$1" --out "$OUTPUT_DIR"/icon20@3x.png
|
72
|
-
|
73
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 29 29 "$1" --out "$OUTPUT_DIR"/icon29@1x.png
|
74
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 58 58 "$1" --out "$OUTPUT_DIR"/icon29@2x.png
|
75
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 87 87 "$1" --out "$OUTPUT_DIR"/icon29@3x.png
|
76
|
-
|
77
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 40 40 "$1" --out "$OUTPUT_DIR"/icon40@1x.png
|
78
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 80 80 "$1" --out "$OUTPUT_DIR"/icon40@2x.png
|
79
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 120 120 "$1" --out "$OUTPUT_DIR"/icon40@3x.png
|
80
|
-
|
81
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 120 120 "$1" --out "$OUTPUT_DIR"/icon60@2x.png
|
82
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 180 180 "$1" --out "$OUTPUT_DIR"/icon60@3x.png
|
83
|
-
|
84
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 76 76 "$1" --out "$OUTPUT_DIR"/icon76@1x.png
|
85
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 152 152 "$1" --out "$OUTPUT_DIR"/icon76@2x.png
|
86
|
-
|
87
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 167 167 "$1" --out "$OUTPUT_DIR"/icon83_5@2x.png
|
88
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 1024 1024 "$1" --out "$OUTPUT_DIR"/icon1024@1x.png
|
89
|
-
fi
|
90
|
-
}
|
91
|
-
|
92
|
-
function ceaate_ios_imessage_icon() {
|
93
|
-
if [[ -z "$@" ]]; then
|
94
|
-
echo "Input file missing"
|
95
|
-
else
|
96
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 58 58 "$1" --out "$OUTPUT_DIR"/imessage/icon29@2x.png
|
97
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 87 87 "$1" --out "$OUTPUT_DIR"/imessage/icon29@3x.png
|
98
|
-
|
99
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 90 120 "$2" --out "$OUTPUT_DIR"/imessage/icon60_45@2x.png
|
100
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 135 180 "$2" --out "$OUTPUT_DIR"/imessage/icon60_45@3x.png
|
101
|
-
|
102
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 100 134 "$2" --out "$OUTPUT_DIR"/imessage/icon67_50@2x.png
|
103
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 110 148 "$2" --out "$OUTPUT_DIR"/imessage/icon74_55@2x.png
|
104
|
-
|
105
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 1024 1024 "$1" --out "$OUTPUT_DIR"/imessage/icon1024@1x.png
|
106
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 768 1024 "$2" --out "$OUTPUT_DIR"/imessage/icon1024_768@1x.png
|
107
|
-
|
108
|
-
|
109
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 40 54 "$2" --out "$OUTPUT_DIR"/imessage/icon27_20@2x.png
|
110
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 60 81 "$2" --out "$OUTPUT_DIR"/imessage/icon27_20@3x.png
|
111
|
-
|
112
|
-
|
113
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 48 64 "$2" --out "$OUTPUT_DIR"/imessage/icon32_24@2x.png
|
114
|
-
sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 72 96 "$2" --out "$OUTPUT_DIR"/imessage/icon32_24@3x.png
|
115
|
-
|
116
|
-
fi
|
117
|
-
}
|
118
|
-
|
119
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 512 512 $INPUT_FILE --out $DEST_DIR/Icon-512.png
|
120
|
-
# sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z 1024 1024 $INPUT_FILE --out $DEST_DIR/Icon-1024.png
|
121
|
-
|
122
|
-
# mkIconAndroid $INPUT_FILE
|
123
|
-
ceaate_ios_icon "$INPUT_FILE"
|
124
|
-
|
125
|
-
if [[ "$INPUT_IMESSAGE_FILE" != "" ]]; then
|
126
|
-
ceaate_ios_imessage_icon "$INPUT_FILE" "$INPUT_IMESSAGE_FILE"
|
127
|
-
fi
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
data/lib/pindo/utils/podindex.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'highline/import'
|
4
|
-
|
5
|
-
module Pindo
|
6
|
-
class Command
|
7
|
-
class Utils < Command
|
8
|
-
class Podindex < Utils
|
9
|
-
|
10
|
-
self.summary = '更新私有pod所索引库.'
|
11
|
-
|
12
|
-
self.description = <<-DESC
|
13
|
-
更新私有pod所索引库
|
14
|
-
DESC
|
15
|
-
|
16
|
-
|
17
|
-
self.arguments = [
|
18
|
-
|
19
|
-
]
|
20
|
-
|
21
|
-
def self.options
|
22
|
-
[
|
23
|
-
|
24
|
-
].concat(super)
|
25
|
-
end
|
26
|
-
|
27
|
-
def initialize(argv)
|
28
|
-
super(argv)
|
29
|
-
@additional_args = argv.remainder!
|
30
|
-
end
|
31
|
-
|
32
|
-
def validate!
|
33
|
-
super
|
34
|
-
end
|
35
|
-
|
36
|
-
def run
|
37
|
-
current_dir = Dir.pwd;
|
38
|
-
|
39
|
-
clone_pindo_common_config_repo(force_delete:false)
|
40
|
-
clone_pindo_env_config_repo(force_delete:false)
|
41
|
-
|
42
|
-
pod_array = pindo_single_config.pod_repo_dict
|
43
|
-
|
44
|
-
if !pod_array.nil?
|
45
|
-
pod_array.each do |key, value|
|
46
|
-
command = 'sh ' + File.join(File.expand_path('./', __dir__), 'podindex.sh') + " #{value}"
|
47
|
-
system command
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
data/lib/pindo/utils/podindex.sh
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
|
4
|
-
LONG_REPO_URL=$1
|
5
|
-
|
6
|
-
SHORT_REPO_URL=${LONG_REPO_URL##*/}
|
7
|
-
|
8
|
-
SHORT_REPO_NAME=${SHORT_REPO_URL%.*}
|
9
|
-
|
10
|
-
|
11
|
-
REPOPATH=$(pod repo | grep -A 1 "$SHORT_REPO_URL" | sed -n '2p'| awk '{print $3}')
|
12
|
-
|
13
|
-
if [[ $REPOPATH == "" ]]; then
|
14
|
-
pod repo add $SHORT_REPO_NAME $LONG_REPO_URL
|
15
|
-
else
|
16
|
-
echo
|
17
|
-
echo Update ${REPOPATH} ...
|
18
|
-
echo
|
19
|
-
/usr/bin/git -C ${REPOPATH} fetch origin --progress
|
20
|
-
/usr/bin/git -C ${REPOPATH} rev-parse --abbrev-ref HEAD
|
21
|
-
/usr/bin/git -C ${REPOPATH} reset --hard origin/master
|
22
|
-
fi
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
data/lib/pindo/utils.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'pindo/utils/icon'
|
3
|
-
require 'pindo/utils/renewproj'
|
4
|
-
require 'pindo/utils/clearcert'
|
5
|
-
require 'pindo/utils/xcassets'
|
6
|
-
require 'pindo/utils/podindex'
|
7
|
-
require 'pindo/utils/device'
|
8
|
-
require 'pindo/utils/applovin'
|
9
|
-
require 'pindo/utils/tgate'
|
10
|
-
require 'pindo/utils/boss'
|
11
|
-
|
12
|
-
|
13
|
-
module Pindo
|
14
|
-
class Command
|
15
|
-
|
16
|
-
class Utils < Command
|
17
|
-
|
18
|
-
|
19
|
-
self.abstract_command = true
|
20
|
-
|
21
|
-
self.summary = '其他工具类的相关命令'
|
22
|
-
|
23
|
-
self.description = '其他工具类的相关命令'
|
24
|
-
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|