@@ -26,12 +26,6 @@ use std::process::{Command, Stdio};
2626
2727use  build_helper:: output; 
2828
29- #[ cfg( not( target_os = "solaris" ) ) ]  
30- const  SH_CMD :  & ' static  str  = "sh" ; 
31- // On Solaris, sh is the historical bourne shell, not a POSIX shell, or bash. 
32- #[ cfg( target_os = "solaris" ) ]  
33- const  SH_CMD :  & ' static  str  = "bash" ; 
34- 
3529use  { Build ,  Compiler ,  Mode } ; 
3630use  channel; 
3731use  util:: { cp_r,  libdir,  is_dylib,  cp_filtered,  copy,  exe} ; 
@@ -55,6 +49,10 @@ pub fn tmpdir(build: &Build) -> PathBuf {
5549    build. out . join ( "tmp/dist" ) 
5650} 
5751
52+ fn  rust_installer ( build :  & Build )  -> Command  { 
53+     build. tool_cmd ( & Compiler :: new ( 0 ,  & build. config . build ) ,  "rust-installer" ) 
54+ } 
55+ 
5856/// Builds the `rust-docs` installer component. 
5957/// 
6058/// Slurps up documentation from the `stage`'s `host`. 
@@ -74,8 +72,8 @@ pub fn docs(build: &Build, stage: u32, host: &str) {
7472    let  src = build. out . join ( host) . join ( "doc" ) ; 
7573    cp_r ( & src,  & dst) ; 
7674
77-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
78-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
75+     let  mut  cmd = rust_installer ( build ) ; 
76+     cmd. arg ( "generate" ) 
7977       . arg ( "--product-name=Rust-Documentation" ) 
8078       . arg ( "--rel-manifest-dir=rustlib" ) 
8179       . arg ( "--success-message=Rust-documentation-is-installed." ) 
@@ -124,8 +122,8 @@ pub fn mingw(build: &Build, host: &str) {
124122       . arg ( host) ; 
125123    build. run ( & mut  cmd) ; 
126124
127-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
128-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
125+     let  mut  cmd = rust_installer ( build ) ; 
126+     cmd. arg ( "generate" ) 
129127       . arg ( "--product-name=Rust-MinGW" ) 
130128       . arg ( "--rel-manifest-dir=rustlib" ) 
131129       . arg ( "--success-message=Rust-MinGW-is-installed." ) 
@@ -190,8 +188,8 @@ pub fn rustc(build: &Build, stage: u32, host: &str) {
190188    } 
191189
192190    // Finally, wrap everything up in a nice tarball! 
193-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
194-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
191+     let  mut  cmd = rust_installer ( build ) ; 
192+     cmd. arg ( "generate" ) 
195193       . arg ( "--product-name=Rust" ) 
196194       . arg ( "--rel-manifest-dir=rustlib" ) 
197195       . arg ( "--success-message=Rust-is-ready-to-roll." ) 
@@ -300,8 +298,8 @@ pub fn std(build: &Build, compiler: &Compiler, target: &str) {
300298    let  src = build. sysroot ( compiler) . join ( "lib/rustlib" ) ; 
301299    cp_r ( & src. join ( target) ,  & dst) ; 
302300
303-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
304-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
301+     let  mut  cmd = rust_installer ( build ) ; 
302+     cmd. arg ( "generate" ) 
305303       . arg ( "--product-name=Rust" ) 
306304       . arg ( "--rel-manifest-dir=rustlib" ) 
307305       . arg ( "--success-message=std-is-standing-at-the-ready." ) 
@@ -356,8 +354,8 @@ pub fn analysis(build: &Build, compiler: &Compiler, target: &str) {
356354    println ! ( "image_src: {:?}, dst: {:?}" ,  image_src,  dst) ; 
357355    cp_r ( & image_src,  & dst) ; 
358356
359-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
360-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
357+     let  mut  cmd = rust_installer ( build ) ; 
358+     cmd. arg ( "generate" ) 
361359       . arg ( "--product-name=Rust" ) 
362360       . arg ( "--rel-manifest-dir=rustlib" ) 
363361       . arg ( "--success-message=save-analysis-saved." ) 
@@ -521,8 +519,8 @@ pub fn rust_src(build: &Build) {
521519    } 
522520
523521    // Create source tarball in rust-installer format 
524-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
525-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
522+     let  mut  cmd = rust_installer ( build ) ; 
523+     cmd. arg ( "generate" ) 
526524       . arg ( "--product-name=Rust" ) 
527525       . arg ( "--rel-manifest-dir=rustlib" ) 
528526       . arg ( "--success-message=Awesome-Source." ) 
@@ -622,8 +620,8 @@ pub fn cargo(build: &Build, stage: u32, target: &str) {
622620    t ! ( t!( File :: create( overlay. join( "version" ) ) ) . write_all( version. as_bytes( ) ) ) ; 
623621
624622    // Generate the installer tarball 
625-     let  mut  cmd = Command :: new ( "sh" ) ; 
626-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
623+     let  mut  cmd = rust_installer ( build ) ; 
624+     cmd. arg ( "generate" ) 
627625       . arg ( "--product-name=Rust" ) 
628626       . arg ( "--rel-manifest-dir=rustlib" ) 
629627       . arg ( "--success-message=Rust-is-ready-to-roll." ) 
@@ -671,8 +669,8 @@ pub fn rls(build: &Build, stage: u32, target: &str) {
671669    t ! ( t!( File :: create( overlay. join( "version" ) ) ) . write_all( version. as_bytes( ) ) ) ; 
672670
673671    // Generate the installer tarball 
674-     let  mut  cmd = Command :: new ( "sh" ) ; 
675-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/gen-installer.sh" ) ) ) 
672+     let  mut  cmd = rust_installer ( build ) ; 
673+     cmd. arg ( "generate" ) 
676674       . arg ( "--product-name=Rust" ) 
677675       . arg ( "--rel-manifest-dir=rustlib" ) 
678676       . arg ( "--success-message=RLS-ready-to-serve." ) 
@@ -742,8 +740,8 @@ pub fn extended(build: &Build, stage: u32, target: &str) {
742740        input_tarballs. push_str ( & sanitize_sh ( & mingw_installer) ) ; 
743741    } 
744742
745-     let  mut  cmd = Command :: new ( SH_CMD ) ; 
746-     cmd. arg ( sanitize_sh ( & build . src . join ( "src/rust-installer/ combine-installers.sh" ) ) ) 
743+     let  mut  cmd = rust_installer ( build ) ; 
744+     cmd. arg ( " combine" ) 
747745       . arg ( "--product-name=Rust" ) 
748746       . arg ( "--rel-manifest-dir=rustlib" ) 
749747       . arg ( "--success-message=Rust-is-ready-to-roll." ) 
0 commit comments