pindo 4.6.9

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 (120) hide show
  1. checksums.yaml +7 -0
  2. data/bin/pindo +35 -0
  3. data/lib/pindo/base/aeshelper.rb +31 -0
  4. data/lib/pindo/base/deviceinfo.rb +90 -0
  5. data/lib/pindo/base/executable.rb +224 -0
  6. data/lib/pindo/base/githelper.rb +489 -0
  7. data/lib/pindo/base/hashhelper.rb +134 -0
  8. data/lib/pindo/base/plaininformative.rb +15 -0
  9. data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
  10. data/lib/pindo/base/standarderror.rb +14 -0
  11. data/lib/pindo/client/applovinclient.rb +156 -0
  12. data/lib/pindo/client/aws3sclient.rb +183 -0
  13. data/lib/pindo/client/bossclient.rb +229 -0
  14. data/lib/pindo/client/bossconfigclient.rb +175 -0
  15. data/lib/pindo/client/giteeclient.rb +65 -0
  16. data/lib/pindo/client/httpclient.rb +40 -0
  17. data/lib/pindo/client/pgyerclient.rb +439 -0
  18. data/lib/pindo/client/tgateclient.rb +103 -0
  19. data/lib/pindo/command.rb +101 -0
  20. data/lib/pindo/config/pindoconfig.rb +439 -0
  21. data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
  22. data/lib/pindo/deploy/Fastfile +233 -0
  23. data/lib/pindo/deploy/build.rb +167 -0
  24. data/lib/pindo/deploy/bundleid.rb +245 -0
  25. data/lib/pindo/deploy/cert.rb +508 -0
  26. data/lib/pindo/deploy/check.rb +79 -0
  27. data/lib/pindo/deploy/configproj.rb +89 -0
  28. data/lib/pindo/deploy/confusecode.rb +248 -0
  29. data/lib/pindo/deploy/confuseproj.rb +112 -0
  30. data/lib/pindo/deploy/fabric.rb +58 -0
  31. data/lib/pindo/deploy/getitcinfo.rb +248 -0
  32. data/lib/pindo/deploy/iap.rb +796 -0
  33. data/lib/pindo/deploy/initconfig.rb +128 -0
  34. data/lib/pindo/deploy/itcapp.rb +147 -0
  35. data/lib/pindo/deploy/itcinfo.rb +369 -0
  36. data/lib/pindo/deploy/pem.rb +55 -0
  37. data/lib/pindo/deploy/pullconfig.rb +46 -0
  38. data/lib/pindo/deploy/pushconfig.rb +83 -0
  39. data/lib/pindo/deploy/quswark.rb +146 -0
  40. data/lib/pindo/deploy/quswauth.rb +67 -0
  41. data/lib/pindo/deploy/reportbug.rb +135 -0
  42. data/lib/pindo/deploy/resign.rb +338 -0
  43. data/lib/pindo/deploy/tag.rb +108 -0
  44. data/lib/pindo/deploy/updateconfig.rb +129 -0
  45. data/lib/pindo/deploy/uploadipa.rb +63 -0
  46. data/lib/pindo/deploy.rb +44 -0
  47. data/lib/pindo/dev/autobuild.rb +204 -0
  48. data/lib/pindo/dev/autoresign.rb +186 -0
  49. data/lib/pindo/dev/confusecode.rb +127 -0
  50. data/lib/pindo/dev/confuseproj.rb +111 -0
  51. data/lib/pindo/dev/createbuild.rb +159 -0
  52. data/lib/pindo/dev/debug.rb +141 -0
  53. data/lib/pindo/dev/pub.rb +171 -0
  54. data/lib/pindo/dev/renewcert.rb +142 -0
  55. data/lib/pindo/dev.rb +23 -0
  56. data/lib/pindo/env/dreamstudio.rb +53 -0
  57. data/lib/pindo/env/flutter.rb +59 -0
  58. data/lib/pindo/env/flutter.sh +116 -0
  59. data/lib/pindo/env/quarkenv.rb +58 -0
  60. data/lib/pindo/env/swarkenv.rb +62 -0
  61. data/lib/pindo/env/workhard.rb +56 -0
  62. data/lib/pindo/env.rb +17 -0
  63. data/lib/pindo/ipa/autoresign.rb +188 -0
  64. data/lib/pindo/ipa/import.rb +261 -0
  65. data/lib/pindo/ipa/output.rb +396 -0
  66. data/lib/pindo/ipa.rb +22 -0
  67. data/lib/pindo/lib/forcepush.rb +159 -0
  68. data/lib/pindo/lib/lint.rb +115 -0
  69. data/lib/pindo/lib/push.rb +143 -0
  70. data/lib/pindo/lib/update.rb +75 -0
  71. data/lib/pindo/lib.rb +18 -0
  72. data/lib/pindo/module/appselect.rb +200 -0
  73. data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
  74. data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
  75. data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
  76. data/lib/pindo/module/buildconfighelper.rb +13 -0
  77. data/lib/pindo/module/buildhelper.rb +76 -0
  78. data/lib/pindo/module/commonconfuseproj.rb +271 -0
  79. data/lib/pindo/module/config_project.sh +143 -0
  80. data/lib/pindo/module/configprojhelper.rb +631 -0
  81. data/lib/pindo/module/iap_tier.json +813 -0
  82. data/lib/pindo/module/icon_contents.json +116 -0
  83. data/lib/pindo/module/imessage_icon.json +91 -0
  84. data/lib/pindo/module/imgset_contents.json +21 -0
  85. data/lib/pindo/module/launchimg_contents.json +21 -0
  86. data/lib/pindo/module/pemcreate.rb +63 -0
  87. data/lib/pindo/module/pgyerhelper.rb +339 -0
  88. data/lib/pindo/module/xcodebuildpre.rb +258 -0
  89. data/lib/pindo/module/xcodehelper.rb +521 -0
  90. data/lib/pindo/options/appconfigoptions.rb +23 -0
  91. data/lib/pindo/options/deployoptions.rb +363 -0
  92. data/lib/pindo/pgyer/apptest.rb +104 -0
  93. data/lib/pindo/pgyer/comment.rb +95 -0
  94. data/lib/pindo/pgyer/download.rb +105 -0
  95. data/lib/pindo/pgyer/login.rb +61 -0
  96. data/lib/pindo/pgyer/upload.rb +234 -0
  97. data/lib/pindo/pgyer.rb +17 -0
  98. data/lib/pindo/repo/clone.rb +78 -0
  99. data/lib/pindo/repo/create.rb +55 -0
  100. data/lib/pindo/repo/login.rb +64 -0
  101. data/lib/pindo/repo/search.rb +60 -0
  102. data/lib/pindo/repo.rb +16 -0
  103. data/lib/pindo/setup.rb +60 -0
  104. data/lib/pindo/upgrade.rb +56 -0
  105. data/lib/pindo/utils/applovin.rb +213 -0
  106. data/lib/pindo/utils/boss.rb +209 -0
  107. data/lib/pindo/utils/clearcert.rb +60 -0
  108. data/lib/pindo/utils/device.rb +279 -0
  109. data/lib/pindo/utils/icon.rb +91 -0
  110. data/lib/pindo/utils/icon.sh +133 -0
  111. data/lib/pindo/utils/podindex.rb +56 -0
  112. data/lib/pindo/utils/podindex.sh +30 -0
  113. data/lib/pindo/utils/renewproj.rb +146 -0
  114. data/lib/pindo/utils/tgate.rb +159 -0
  115. data/lib/pindo/utils/xcassets.rb +46 -0
  116. data/lib/pindo/utils/xcassets.sh +88 -0
  117. data/lib/pindo/utils.rb +29 -0
  118. data/lib/pindo/version.rb +110 -0
  119. data/lib/pindo.rb +34 -0
  120. 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
+