@@ -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
@@ -50,18 +49,13 @@ impl PublishBuilder {
50
49
51
50
/// Set the files in the crate's tarball.
52
51
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( ) ) ;
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 ;
58
+ self . tarball = builder . build ( ) ;
65
59
self
66
60
}
67
61
0 commit comments