pindo 4.6.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/pindo +35 -0
- data/lib/pindo/base/aeshelper.rb +31 -0
- data/lib/pindo/base/deviceinfo.rb +90 -0
- data/lib/pindo/base/executable.rb +224 -0
- data/lib/pindo/base/githelper.rb +489 -0
- data/lib/pindo/base/hashhelper.rb +134 -0
- data/lib/pindo/base/plaininformative.rb +15 -0
- data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
- data/lib/pindo/base/standarderror.rb +14 -0
- data/lib/pindo/client/applovinclient.rb +156 -0
- data/lib/pindo/client/aws3sclient.rb +183 -0
- data/lib/pindo/client/bossclient.rb +229 -0
- data/lib/pindo/client/bossconfigclient.rb +175 -0
- data/lib/pindo/client/giteeclient.rb +65 -0
- data/lib/pindo/client/httpclient.rb +40 -0
- data/lib/pindo/client/pgyerclient.rb +439 -0
- data/lib/pindo/client/tgateclient.rb +103 -0
- data/lib/pindo/command.rb +101 -0
- data/lib/pindo/config/pindoconfig.rb +439 -0
- data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
- data/lib/pindo/deploy/Fastfile +233 -0
- data/lib/pindo/deploy/build.rb +167 -0
- data/lib/pindo/deploy/bundleid.rb +245 -0
- data/lib/pindo/deploy/cert.rb +508 -0
- data/lib/pindo/deploy/check.rb +79 -0
- data/lib/pindo/deploy/configproj.rb +89 -0
- data/lib/pindo/deploy/confusecode.rb +248 -0
- data/lib/pindo/deploy/confuseproj.rb +112 -0
- data/lib/pindo/deploy/fabric.rb +58 -0
- data/lib/pindo/deploy/getitcinfo.rb +248 -0
- data/lib/pindo/deploy/iap.rb +796 -0
- data/lib/pindo/deploy/initconfig.rb +128 -0
- data/lib/pindo/deploy/itcapp.rb +147 -0
- data/lib/pindo/deploy/itcinfo.rb +369 -0
- data/lib/pindo/deploy/pem.rb +55 -0
- data/lib/pindo/deploy/pullconfig.rb +46 -0
- data/lib/pindo/deploy/pushconfig.rb +83 -0
- data/lib/pindo/deploy/quswark.rb +146 -0
- data/lib/pindo/deploy/quswauth.rb +67 -0
- data/lib/pindo/deploy/reportbug.rb +135 -0
- data/lib/pindo/deploy/resign.rb +338 -0
- data/lib/pindo/deploy/tag.rb +108 -0
- data/lib/pindo/deploy/updateconfig.rb +129 -0
- data/lib/pindo/deploy/uploadipa.rb +63 -0
- data/lib/pindo/deploy.rb +44 -0
- data/lib/pindo/dev/autobuild.rb +204 -0
- data/lib/pindo/dev/autoresign.rb +186 -0
- data/lib/pindo/dev/confusecode.rb +127 -0
- data/lib/pindo/dev/confuseproj.rb +111 -0
- data/lib/pindo/dev/createbuild.rb +159 -0
- data/lib/pindo/dev/debug.rb +141 -0
- data/lib/pindo/dev/pub.rb +171 -0
- data/lib/pindo/dev/renewcert.rb +142 -0
- data/lib/pindo/dev.rb +23 -0
- data/lib/pindo/env/dreamstudio.rb +53 -0
- data/lib/pindo/env/flutter.rb +59 -0
- data/lib/pindo/env/flutter.sh +116 -0
- data/lib/pindo/env/quarkenv.rb +58 -0
- data/lib/pindo/env/swarkenv.rb +62 -0
- data/lib/pindo/env/workhard.rb +56 -0
- data/lib/pindo/env.rb +17 -0
- data/lib/pindo/ipa/autoresign.rb +188 -0
- data/lib/pindo/ipa/import.rb +261 -0
- data/lib/pindo/ipa/output.rb +396 -0
- data/lib/pindo/ipa.rb +22 -0
- data/lib/pindo/lib/forcepush.rb +159 -0
- data/lib/pindo/lib/lint.rb +115 -0
- data/lib/pindo/lib/push.rb +143 -0
- data/lib/pindo/lib/update.rb +75 -0
- data/lib/pindo/lib.rb +18 -0
- data/lib/pindo/module/appselect.rb +200 -0
- data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
- data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
- data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
- data/lib/pindo/module/buildconfighelper.rb +13 -0
- data/lib/pindo/module/buildhelper.rb +76 -0
- data/lib/pindo/module/commonconfuseproj.rb +271 -0
- data/lib/pindo/module/config_project.sh +143 -0
- data/lib/pindo/module/configprojhelper.rb +631 -0
- data/lib/pindo/module/iap_tier.json +813 -0
- data/lib/pindo/module/icon_contents.json +116 -0
- data/lib/pindo/module/imessage_icon.json +91 -0
- data/lib/pindo/module/imgset_contents.json +21 -0
- data/lib/pindo/module/launchimg_contents.json +21 -0
- data/lib/pindo/module/pemcreate.rb +63 -0
- data/lib/pindo/module/pgyerhelper.rb +339 -0
- data/lib/pindo/module/xcodebuildpre.rb +258 -0
- data/lib/pindo/module/xcodehelper.rb +521 -0
- data/lib/pindo/options/appconfigoptions.rb +23 -0
- data/lib/pindo/options/deployoptions.rb +363 -0
- data/lib/pindo/pgyer/apptest.rb +104 -0
- data/lib/pindo/pgyer/comment.rb +95 -0
- data/lib/pindo/pgyer/download.rb +105 -0
- data/lib/pindo/pgyer/login.rb +61 -0
- data/lib/pindo/pgyer/upload.rb +234 -0
- data/lib/pindo/pgyer.rb +17 -0
- data/lib/pindo/repo/clone.rb +78 -0
- data/lib/pindo/repo/create.rb +55 -0
- data/lib/pindo/repo/login.rb +64 -0
- data/lib/pindo/repo/search.rb +60 -0
- data/lib/pindo/repo.rb +16 -0
- data/lib/pindo/setup.rb +60 -0
- data/lib/pindo/upgrade.rb +56 -0
- data/lib/pindo/utils/applovin.rb +213 -0
- data/lib/pindo/utils/boss.rb +209 -0
- data/lib/pindo/utils/clearcert.rb +60 -0
- data/lib/pindo/utils/device.rb +279 -0
- data/lib/pindo/utils/icon.rb +91 -0
- data/lib/pindo/utils/icon.sh +133 -0
- data/lib/pindo/utils/podindex.rb +56 -0
- data/lib/pindo/utils/podindex.sh +30 -0
- data/lib/pindo/utils/renewproj.rb +146 -0
- data/lib/pindo/utils/tgate.rb +159 -0
- data/lib/pindo/utils/xcassets.rb +46 -0
- data/lib/pindo/utils/xcassets.sh +88 -0
- data/lib/pindo/utils.rb +29 -0
- data/lib/pindo/version.rb +110 -0
- data/lib/pindo.rb +34 -0
- metadata +364 -0
@@ -0,0 +1,279 @@
|
|
1
|
+
|
2
|
+
require 'highline/import'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'json'
|
5
|
+
require 'csv'
|
6
|
+
|
7
|
+
module Pindo
|
8
|
+
class Command
|
9
|
+
class Utils < Command
|
10
|
+
class Device < Utils
|
11
|
+
|
12
|
+
self.summary = '同步开发者账号中测试设备udid'
|
13
|
+
|
14
|
+
self.description = <<-DESC
|
15
|
+
同步开发者账号中测试设备udid
|
16
|
+
DESC
|
17
|
+
|
18
|
+
class DeviceItem
|
19
|
+
|
20
|
+
attr_accessor :name
|
21
|
+
attr_accessor :udid
|
22
|
+
attr_accessor :platform
|
23
|
+
attr_accessor :device_type
|
24
|
+
attr_accessor :device_model
|
25
|
+
|
26
|
+
attr_accessor :device_description
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
self.arguments = [
|
32
|
+
|
33
|
+
]
|
34
|
+
|
35
|
+
def self.options
|
36
|
+
[
|
37
|
+
|
38
|
+
].concat(super)
|
39
|
+
end
|
40
|
+
|
41
|
+
def initialize(argv)
|
42
|
+
|
43
|
+
super(argv)
|
44
|
+
@additional_args = argv.remainder!
|
45
|
+
end
|
46
|
+
|
47
|
+
def validate!
|
48
|
+
super
|
49
|
+
end
|
50
|
+
|
51
|
+
def run
|
52
|
+
|
53
|
+
login
|
54
|
+
fetch_device
|
55
|
+
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
def login
|
61
|
+
Spaceship::Portal.login(pindo_single_config.demo_apple_id)
|
62
|
+
Spaceship::Portal.select_team
|
63
|
+
end
|
64
|
+
|
65
|
+
def fetch_device
|
66
|
+
|
67
|
+
|
68
|
+
devices = Spaceship::Portal.device.all(include_disabled: true).select do |device|
|
69
|
+
device.enabled?
|
70
|
+
end
|
71
|
+
mac_disabled_devices = Spaceship::Portal.device.all(mac: true, include_disabled: true).select do |device|
|
72
|
+
device.enabled?
|
73
|
+
end
|
74
|
+
|
75
|
+
my_total_devices = {}
|
76
|
+
|
77
|
+
devices.each do |item|
|
78
|
+
device_item = DeviceItem.new
|
79
|
+
device_item.name = item.name
|
80
|
+
device_item.name = device_item.name.downcase
|
81
|
+
device_item.udid = item.udid
|
82
|
+
device_item.platform = item.platform
|
83
|
+
device_item.device_model = item.model
|
84
|
+
device_item.device_type = item.device_type
|
85
|
+
|
86
|
+
device_item.device_description = ""
|
87
|
+
my_total_devices[item.udid] = device_item
|
88
|
+
end
|
89
|
+
|
90
|
+
mac_disabled_devices.each do |item|
|
91
|
+
# puts item
|
92
|
+
device_item = DeviceItem.new
|
93
|
+
device_item.name = item.name
|
94
|
+
device_item.name = device_item.name.downcase
|
95
|
+
device_item.udid = item.udid
|
96
|
+
device_item.platform = item.platform
|
97
|
+
device_item.device_model = item.model
|
98
|
+
device_item.device_type = item.device_type
|
99
|
+
device_item.device_description = ""
|
100
|
+
my_total_devices[item.udid] = device_item
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
use_devices = read_user_csv()
|
106
|
+
|
107
|
+
use_devices.each do |key, item|
|
108
|
+
if !my_total_devices[key].nil?
|
109
|
+
|
110
|
+
if !item.device_description.nil?
|
111
|
+
my_total_devices[key].device_description = item.device_description
|
112
|
+
end
|
113
|
+
if my_total_devices[key].device_description.nil? || my_total_devices[key].device_description.eql?("")
|
114
|
+
my_total_devices[key].device_description = item.name.to_s.downcase
|
115
|
+
end
|
116
|
+
|
117
|
+
if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
|
118
|
+
my_total_devices[key].device_model = item.device_model
|
119
|
+
|
120
|
+
end
|
121
|
+
if my_total_devices[key].device_model.nil? || my_total_devices[key].device_model.eql?("")
|
122
|
+
my_total_devices[key].device_model = item.name.to_s.downcase
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
pgyer_devices = read_apppgyer_csv()
|
131
|
+
pgyer_devices.each do |key, item|
|
132
|
+
if !my_total_devices[key].nil?
|
133
|
+
|
134
|
+
if !item.device_description.nil?
|
135
|
+
my_total_devices[key].device_description = item.device_description
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
|
141
|
+
# my_total_devices = read_user_csv()
|
142
|
+
|
143
|
+
|
144
|
+
write_appstore_text(devices:my_total_devices)
|
145
|
+
# write_user_csv(devices:my_total_devices)
|
146
|
+
write_apppgyer_csv(devices:my_total_devices)
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
def write_appstore_text(devices:nil)
|
151
|
+
|
152
|
+
device_file = File.join(Dir.pwd, "new_devices_list.txt");
|
153
|
+
|
154
|
+
str_text = String.new
|
155
|
+
str_text = "DEVICE ID\tDEVICE NAME\tDEVICE PLATFORM\n"
|
156
|
+
devices.each do |key, device|
|
157
|
+
if device.platform.nil? || !(device.platform.to_s.eql?("ios") || device.platform.to_s.eql?("mac"))
|
158
|
+
if device.device_type.to_s.downcase!.eql?("mac")
|
159
|
+
device.platform = "mac"
|
160
|
+
else
|
161
|
+
device.platform = "ios"
|
162
|
+
end
|
163
|
+
end
|
164
|
+
str = String.new
|
165
|
+
str = str + device.udid
|
166
|
+
str = str + "\t"
|
167
|
+
str = str + device.name
|
168
|
+
str = str + "\t"
|
169
|
+
str = str + device.platform
|
170
|
+
str = str + "\n"
|
171
|
+
str_text = str_text + str
|
172
|
+
end
|
173
|
+
|
174
|
+
File.open(device_file, "w") do |f|
|
175
|
+
f.write(str_text)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
def write_apppgyer_csv(devices:nil)
|
180
|
+
|
181
|
+
device_file = File.join(Dir.pwd, "new_pgyer_devices_list.csv");
|
182
|
+
|
183
|
+
devices.each do |key, item|
|
184
|
+
if item.device_type.to_s.eql?("ipad")
|
185
|
+
item.device_type = "iPad"
|
186
|
+
elsif item.device_type.to_s.eql?("iphone")
|
187
|
+
item.device_type = "iPhone"
|
188
|
+
elsif item.device_type.to_s.eql?("watch")
|
189
|
+
item.device_type = "Apple Watch"
|
190
|
+
elsif item.device_type.to_s.eql?("appleSiliconMac")
|
191
|
+
item.device_type = "Mac"
|
192
|
+
elsif item.device_type.to_s.eql?("mac")
|
193
|
+
item.device_type = "Mac"
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
|
198
|
+
CSV.open(device_file, "wb") do |csv|
|
199
|
+
csv << ["型号", "udid", "设备类型", "设备名称", "备注", "udid来源", "添加时间"]
|
200
|
+
|
201
|
+
devices.each do |key, device|
|
202
|
+
csv << [device.device_model,device.udid,device.device_type,device.name ,device.device_description]
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
|
208
|
+
def read_apppgyer_csv()
|
209
|
+
|
210
|
+
devices = {}
|
211
|
+
|
212
|
+
|
213
|
+
device_file = File.join(Dir.pwd, "pgyer_devices_list.csv");
|
214
|
+
if File.exist?(device_file)
|
215
|
+
line_num=0
|
216
|
+
CSV.foreach(device_file, headers:false) do |row|
|
217
|
+
if line_num > 0
|
218
|
+
device_item = DeviceItem.new
|
219
|
+
device_item.device_model = row[0]
|
220
|
+
device_item.udid = row[1]
|
221
|
+
device_item.device_type = row[2]
|
222
|
+
device_item.name = row[3]
|
223
|
+
device_item.device_description = row[4]
|
224
|
+
devices[device_item.udid] = device_item
|
225
|
+
end
|
226
|
+
line_num += 1
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
|
231
|
+
return devices
|
232
|
+
|
233
|
+
end
|
234
|
+
|
235
|
+
|
236
|
+
def write_user_csv(devices:nil)
|
237
|
+
|
238
|
+
device_file = File.join(Dir.pwd, "new_user_devices_list.csv");
|
239
|
+
|
240
|
+
CSV.open(device_file, "wb") do |csv|
|
241
|
+
csv << ["设备名称", "udid", "设备类型", "型号", "备注"]
|
242
|
+
|
243
|
+
devices.each do |key, device|
|
244
|
+
csv << [device.name,device.udid,device.device_type,device.device_model ,device.device_description]
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
def read_user_csv()
|
250
|
+
|
251
|
+
devices = {}
|
252
|
+
|
253
|
+
device_file = File.join(Dir.pwd, "user_devices_list.csv");
|
254
|
+
|
255
|
+
if File.exist?(device_file)
|
256
|
+
puts 1111
|
257
|
+
line_num=0
|
258
|
+
CSV.foreach(device_file, headers:false) do |row|
|
259
|
+
if line_num > 0
|
260
|
+
device_item = DeviceItem.new
|
261
|
+
device_item.name = row[0]
|
262
|
+
device_item.udid = row[1]
|
263
|
+
device_item.device_type = row[2]
|
264
|
+
device_item.device_model = row[3]
|
265
|
+
device_item.device_description = row[4]
|
266
|
+
devices[device_item.udid] = device_item
|
267
|
+
end
|
268
|
+
line_num += 1
|
269
|
+
end
|
270
|
+
end
|
271
|
+
# puts devices
|
272
|
+
return devices
|
273
|
+
|
274
|
+
end
|
275
|
+
|
276
|
+
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
@@ -0,0 +1,91 @@
|
|
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
|
@@ -0,0 +1,133 @@
|
|
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
|
+
|
@@ -0,0 +1,56 @@
|
|
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
|
@@ -0,0 +1,30 @@
|
|
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
|
+
|