Skip to content

Commit 91901a1

Browse files
committed
fix download_url in metadata
1 parent cd43725 commit 91901a1

1 file changed

Lines changed: 31 additions & 4 deletions

File tree

sbuild-meta/src/metadata.rs

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,28 @@ impl PackageMetadata {
305305
}
306306

307307
// Generate blob reference and download URLs
308-
if let Some(filename) = manifest.filenames().first() {
308+
let filenames = manifest.filenames();
309+
310+
// Find the main binary - prefer pkg_name, then exclude known auxiliary files
311+
let main_file = filenames.iter().find(|f| {
312+
let name = f.rsplit('/').next().unwrap_or(f);
313+
name == self.pkg_name || name == &self.pkg
314+
}).or_else(|| {
315+
// Fallback: find first file that's not an auxiliary file
316+
filenames.iter().find(|f| {
317+
let name = f.rsplit('/').next().unwrap_or(f);
318+
!name.ends_with(".version")
319+
&& !name.ends_with(".log")
320+
&& !name.ends_with(".sig")
321+
&& !name.ends_with(".json")
322+
&& name != "CHECKSUM"
323+
&& name != "SBUILD"
324+
&& name != "LICENSE"
325+
&& name != "BUILD.log"
326+
})
327+
}).or_else(|| filenames.first());
328+
329+
if let Some(filename) = main_file {
309330
self.ghcr_blob = manifest.get_blob_ref(filename);
310331

311332
// Generate download URL and manifest URL
@@ -317,9 +338,15 @@ impl PackageMetadata {
317338
"https://api.ghcr.pkgforge.dev/{}?tag={}&manifest",
318339
ghcr_path, tag
319340
));
320-
// Size is usually same as ghcr_size for single binary packages
321-
self.size_raw = self.ghcr_size_raw;
322-
self.size = self.ghcr_size.clone();
341+
342+
// Get size of main binary if available
343+
if let Some(layer) = manifest.get_layer_by_filename(filename) {
344+
self.size_raw = Some(layer.size);
345+
self.size = Some(format_size(layer.size));
346+
} else {
347+
self.size_raw = self.ghcr_size_raw;
348+
self.size = self.ghcr_size.clone();
349+
}
323350
}
324351
}
325352

0 commit comments

Comments
 (0)