@@ -402,7 +402,9 @@ impl Component for Efi {
402402 ) ;
403403 let firmware_meta: ContentMetadata =
404404 serde_json:: from_reader ( ver_dir. open_file ( meta_path) ?) ?;
405- let firmware_filetree = crate :: filetree:: FileTree :: new_from_dir ( & ver_dir) ?;
405+ let payload_src_dir = ver_dir. sub_dir ( "EFI" ) ?;
406+ let firmware_filetree =
407+ crate :: filetree:: FileTree :: new_from_dir ( & payload_src_dir) ?;
406408 for file_path_str in firmware_filetree. children . keys ( ) {
407409 let file_path = Path :: new ( file_path_str) ;
408410 if file_path != meta_path {
@@ -558,7 +560,10 @@ impl Component for Efi {
558560 } ;
559561
560562 // Use the flattened destination path
561- let final_dest_path = dest_efidir_base. join ( & pkg_name) . join ( & version_release_str) ;
563+ let matadata_path = dest_efidir_base. join ( & pkg_name) . join ( & version_release_str) ;
564+ std:: fs:: create_dir_all ( & matadata_path) ?;
565+
566+ let final_dest_path = matadata_path. join ( "EFI" ) ;
562567 std:: fs:: create_dir_all ( & final_dest_path) ?;
563568
564569 // Copy the payload files
@@ -584,7 +589,7 @@ impl Component for Efi {
584589 }
585590
586591 // Create the metadata file for the firmware
587- let firmware_meta_path = final_dest_path . join ( "EFI.json" ) ;
592+ let firmware_meta_path = matadata_path . join ( "EFI.json" ) ;
588593 let meta_file = std:: fs:: File :: create ( firmware_meta_path) ?;
589594 serde_json:: to_writer ( meta_file, & meta_from_src) ?;
590595 log:: debug!( "Wrote firmware metadata for {}" , pkg_name) ;
0 commit comments