@@ -2,7 +2,6 @@ use crates_io::views::krate_publish as u;
2
2
use std:: collections:: BTreeMap ;
3
3
4
4
use crates_io_tarball:: TarballBuilder ;
5
- use flate2:: { write:: GzEncoder , Compression } ;
6
5
7
6
use super :: DependencyBuilder ;
8
7
@@ -49,20 +48,14 @@ impl PublishBuilder {
49
48
}
50
49
51
50
/// 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) ;
62
56
}
63
57
64
- self . tarball = tarball;
65
- self
58
+ self . tarball ( builder. build ( ) )
66
59
}
67
60
68
61
/// Set the tarball directly to the given Vec of bytes
0 commit comments