@@ -1015,72 +1015,31 @@ impl Step for Cargo {
10151015 let compiler = self . compiler ;
10161016 let target = self . target ;
10171017
1018+ let cargo = builder. ensure ( tool:: Cargo { compiler, target } ) ;
10181019 let src = builder. src . join ( "src/tools/cargo" ) ;
10191020 let etc = src. join ( "src/etc" ) ;
1020- let release_num = builder. release_num ( "cargo" ) ;
1021- let name = pkgname ( builder, "cargo" ) ;
1022- let version = builder. cargo_info . version ( builder, & release_num) ;
1023-
1024- let tmp = tmpdir ( builder) ;
1025- let image = tmp. join ( "cargo-image" ) ;
1026- drop ( fs:: remove_dir_all ( & image) ) ;
1027- builder. create_dir ( & image) ;
10281021
10291022 // Prepare the image directory
1030- builder. create_dir ( & image. join ( "share/zsh/site-functions" ) ) ;
1031- builder. create_dir ( & image. join ( "etc/bash_completion.d" ) ) ;
1032- let cargo = builder. ensure ( tool:: Cargo { compiler, target } ) ;
1033- builder. install ( & cargo, & image. join ( "bin" ) , 0o755 ) ;
1023+ let mut tarball = Tarball :: new ( builder, "cargo" , & target. triple ) ;
1024+ tarball. set_overlay ( OverlayKind :: Cargo ) ;
1025+
1026+ tarball. add_file ( & cargo, "bin" , 0o755 ) ;
1027+ tarball. add_file ( src. join ( "README.md" ) , "share/doc/cargo" , 0o644 ) ;
1028+ tarball. add_file ( src. join ( "LICENSE-MIT" ) , "share/doc/cargo" , 0o644 ) ;
1029+ tarball. add_file ( src. join ( "LICENSE-APACHE" ) , "share/doc/cargo" , 0o644 ) ;
1030+ tarball. add_file ( src. join ( "LICENSE-THIRD-PARTY" ) , "share/doc/cargo" , 0o644 ) ;
1031+ tarball. add_file ( etc. join ( "_cargo" ) , "share/zsh/site-functions" , 0o644 ) ;
1032+ tarball. add_renamed_file ( etc. join ( "cargo.bashcomp.sh" ) , "etc/bash_completion.d" , "cargo" ) ;
1033+ tarball. add_dir ( etc. join ( "man" ) , "share/man/man1" ) ;
1034+
10341035 for dirent in fs:: read_dir ( cargo. parent ( ) . unwrap ( ) ) . expect ( "read_dir" ) {
10351036 let dirent = dirent. expect ( "read dir entry" ) ;
10361037 if dirent. file_name ( ) . to_str ( ) . expect ( "utf8" ) . starts_with ( "cargo-credential-" ) {
1037- builder . install ( & dirent. path ( ) , & image . join ( "libexec" ) , 0o755 ) ;
1038+ tarball . add_file ( & dirent. path ( ) , "libexec" , 0o755 ) ;
10381039 }
10391040 }
1040- for man in t ! ( etc. join( "man" ) . read_dir( ) ) {
1041- let man = t ! ( man) ;
1042- builder. install ( & man. path ( ) , & image. join ( "share/man/man1" ) , 0o644 ) ;
1043- }
1044- builder. install ( & etc. join ( "_cargo" ) , & image. join ( "share/zsh/site-functions" ) , 0o644 ) ;
1045- builder. copy ( & etc. join ( "cargo.bashcomp.sh" ) , & image. join ( "etc/bash_completion.d/cargo" ) ) ;
1046- let doc = image. join ( "share/doc/cargo" ) ;
1047- builder. install ( & src. join ( "README.md" ) , & doc, 0o644 ) ;
1048- builder. install ( & src. join ( "LICENSE-MIT" ) , & doc, 0o644 ) ;
1049- builder. install ( & src. join ( "LICENSE-APACHE" ) , & doc, 0o644 ) ;
1050- builder. install ( & src. join ( "LICENSE-THIRD-PARTY" ) , & doc, 0o644 ) ;
1051-
1052- // Prepare the overlay
1053- let overlay = tmp. join ( "cargo-overlay" ) ;
1054- drop ( fs:: remove_dir_all ( & overlay) ) ;
1055- builder. create_dir ( & overlay) ;
1056- builder. install ( & src. join ( "README.md" ) , & overlay, 0o644 ) ;
1057- builder. install ( & src. join ( "LICENSE-MIT" ) , & overlay, 0o644 ) ;
1058- builder. install ( & src. join ( "LICENSE-APACHE" ) , & overlay, 0o644 ) ;
1059- builder. install ( & src. join ( "LICENSE-THIRD-PARTY" ) , & overlay, 0o644 ) ;
1060- builder. create ( & overlay. join ( "version" ) , & version) ;
1061-
1062- // Generate the installer tarball
1063- let mut cmd = rust_installer ( builder) ;
1064- cmd. arg ( "generate" )
1065- . arg ( "--product-name=Rust" )
1066- . arg ( "--rel-manifest-dir=rustlib" )
1067- . arg ( "--success-message=Rust-is-ready-to-roll." )
1068- . arg ( "--image-dir" )
1069- . arg ( & image)
1070- . arg ( "--work-dir" )
1071- . arg ( & tmpdir ( builder) )
1072- . arg ( "--output-dir" )
1073- . arg ( & distdir ( builder) )
1074- . arg ( "--non-installed-overlay" )
1075- . arg ( & overlay)
1076- . arg ( format ! ( "--package-name={}-{}" , name, target. triple) )
1077- . arg ( "--component-name=cargo" )
1078- . arg ( "--legacy-manifest-dirs=rustlib,cargo" ) ;
10791041
1080- builder. info ( & format ! ( "Dist cargo stage{} ({})" , compiler. stage, target) ) ;
1081- let _time = timeit ( builder) ;
1082- builder. run ( & mut cmd) ;
1083- distdir ( builder) . join ( format ! ( "{}-{}.tar.gz" , name, target. triple) )
1042+ tarball. generate ( )
10841043 }
10851044}
10861045
0 commit comments