emerge 0.7.1 → 0.7.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 409fec8581e499747b3c9ca5cd80e0f9c9e491ca0d94688bc1e0d299a974a95b
4
- data.tar.gz: 64863c523c84b25f5ff21a9bbda0863f13ef7a5165d5437aeb66d60211e7fe84
3
+ metadata.gz: 0eeb092bc3889613fa27a5e513ac667031a602ed92ea8d3da3936b4db228f816
4
+ data.tar.gz: a2e8f5b498adfbeda356e5ae8010826eaf21429f0556c2b65f452947df102844
5
5
  SHA512:
6
- metadata.gz: 5a6dc2be9e2ad1f3078c9f6703d35c2f1e70d5630d14a2f682216fb949c1111b7bc236702e2e9698714f4662e5e7a70bcb67118c510542b61d1b58c00f13dc1e
7
- data.tar.gz: 76f622ef6797a7c420d1406e9f43ddceb9f075180641ae6e5b78cbb63a3a18489d883d63346d973f9ff8e6b225281d2d0671e6ad33d5ff667b5c7d347c8ba769
6
+ metadata.gz: 2a5166082c6668bf0fd0c2a5d431b54a2a70ae58bef468967b6d3120173e9215576fb7ecbe94acc6f8d3ee747d85f0bff0b09232e1343666622f07532f8e783d
7
+ data.tar.gz: d9638a7b631a4c2831b6d676994bde76a1b4b9e0077effe211ef5c2f1a0f0cf88ebd8f908be6ec72c1ae8b49f56cad71efa82be877be891d5270cbc0944d326e
@@ -68,7 +68,7 @@ module EmergeCLI
68
68
 
69
69
  image_files = @profiler.measure('find_image_files') { find_image_files(client) }
70
70
 
71
- @profiler.measure('check_duplicate_files') { check_duplicate_files(image_files, client) }
71
+ check_duplicate_files(image_files, client)
72
72
 
73
73
  run_id = @profiler.measure('create_run') { create_run }
74
74
 
@@ -130,18 +130,26 @@ module EmergeCLI
130
130
  found_images
131
131
  end
132
132
 
133
- def check_duplicate_files(image_files, client)
133
+ def check_duplicate_files(image_files, _client)
134
134
  seen_files = {}
135
+ duplicate_files = {}
136
+
135
137
  image_files.each do |image_path|
136
- file_name = client.parse_file_info(image_path)[:file_name]
138
+ file_name = File.basename(image_path)
137
139
 
138
140
  if seen_files[file_name]
139
- Logger.warn "Duplicate file name detected: '#{file_name}'. " \
140
- "Previous occurrence: '#{seen_files[file_name]}'. " \
141
- 'This upload will overwrite the previous one.'
141
+ duplicate_files[file_name] ||= []
142
+ duplicate_files[file_name] << image_path
143
+ else
144
+ seen_files[file_name] = image_path
142
145
  end
143
- seen_files[file_name] = image_path
144
146
  end
147
+
148
+ duplicate_files.each do |filename, paths|
149
+ Logger.warn "Found #{paths.length} duplicate(s) of '#{filename}'. Duplicates: #{paths.join(', ')}"
150
+ end
151
+
152
+ [seen_files, duplicate_files]
145
153
  end
146
154
 
147
155
  def create_run
@@ -201,10 +209,15 @@ module EmergeCLI
201
209
  errors: []
202
210
  }
203
211
 
212
+ used_filenames, = check_duplicate_files(image_files, client)
213
+ file_info_map = {}
214
+
204
215
  @profiler.measure('process_image_metadata') do
205
216
  image_files.each do |image_path|
206
217
  metadata_semaphore.async do
207
218
  file_info = client.parse_file_info(image_path)
219
+ file_name_without_extension = File.basename(file_info[:file_name], '.*')
220
+ file_info_map[image_path] = file_info
208
221
 
209
222
  dimensions = @profiler.measure('chunky_png_processing') do
210
223
  datastream = ChunkyPNG::Datastream.from_file(image_path)
@@ -215,15 +228,14 @@ module EmergeCLI
215
228
  end
216
229
 
217
230
  metadata = {
218
- fileName: file_info[:file_name],
231
+ fileName: file_name_without_extension,
219
232
  groupName: file_info[:group_name],
220
233
  displayName: file_info[:variant_name],
221
234
  width: dimensions[:width],
222
235
  height: dimensions[:height]
223
236
  }
224
237
 
225
- image_name = File.basename(image_path, '.*')
226
- image_metadata[:images][image_name] = metadata
238
+ image_metadata[:images][file_name_without_extension] = metadata
227
239
  end
228
240
  end
229
241
 
@@ -236,8 +248,9 @@ module EmergeCLI
236
248
  zipfile.get_output_stream('manifest.json') { |f| f.write(JSON.generate(image_metadata)) }
237
249
 
238
250
  image_files.each do |image_path|
239
- image_name = File.basename(image_path)
240
- zipfile.add(image_name, image_path)
251
+ file_info = file_info_map[image_path]
252
+ # Only add files we haven't seen before, otherwise it will crash
253
+ zipfile.add(file_info[:file_name], image_path) if used_filenames[file_info[:file_name]] == image_path
241
254
  end
242
255
  end
243
256
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module EmergeCLI
2
- VERSION = '0.7.1'.freeze
2
+ VERSION = '0.7.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emerge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emerge Tools
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-02-06 00:00:00.000000000 Z
11
+ date: 2025-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http