@@ -1015,72 +1015,31 @@ impl Step for Cargo {
1015
1015
let compiler = self . compiler ;
1016
1016
let target = self . target ;
1017
1017
1018
+ let cargo = builder. ensure ( tool:: Cargo { compiler, target } ) ;
1018
1019
let src = builder. src . join ( "src/tools/cargo" ) ;
1019
1020
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) ;
1028
1021
1029
1022
// 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
+
1034
1035
for dirent in fs:: read_dir ( cargo. parent ( ) . unwrap ( ) ) . expect ( "read_dir" ) {
1035
1036
let dirent = dirent. expect ( "read dir entry" ) ;
1036
1037
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 ) ;
1038
1039
}
1039
1040
}
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" ) ;
1079
1041
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 ( )
1084
1043
}
1085
1044
}
1086
1045
0 commit comments