@@ -2,7 +2,6 @@ use crates_io::views::krate_publish as u;
22use std:: collections:: BTreeMap ;
33
44use crates_io_tarball:: TarballBuilder ;
5- use flate2:: { write:: GzEncoder , Compression } ;
65
76use super :: DependencyBuilder ;
87
@@ -49,20 +48,14 @@ impl PublishBuilder {
4948 }
5049
5150 /// Set the files in the crate's tarball.
52- pub fn files ( mut self , files : & [ ( & str , & [ u8 ] ) ] ) -> Self {
53- let mut tarball = Vec :: new ( ) ;
54- {
55- let mut ar = tar:: Builder :: new ( GzEncoder :: new ( & mut tarball, Compression :: default ( ) ) ) ;
56- for ( name, data) in files {
57- let mut header = tar:: Header :: new_gnu ( ) ;
58- header. set_size ( data. len ( ) as u64 ) ;
59- assert_ok ! ( ar. append_data( & mut header, name, * data) ) ;
60- }
61- assert_ok ! ( ar. finish( ) ) ;
51+ pub fn files ( self , files : & [ ( & str , & [ u8 ] ) ] ) -> Self {
52+ let mut builder = TarballBuilder :: new ( & self . krate_name , & self . version . to_string ( ) ) ;
53+
54+ for ( name, data) in files {
55+ builder = builder. add_file ( name, data) ;
6256 }
6357
64- self . tarball = tarball;
65- self
58+ self . tarball ( builder. build ( ) )
6659 }
6760
6861 /// Set the tarball directly to the given Vec of bytes
0 commit comments