@@ -10,6 +10,7 @@ use rustc_serialize::json::ToJson;
1010use rustwide:: cmd:: { Command , SandboxBuilder } ;
1111use rustwide:: logging:: { self , LogStorage } ;
1212use rustwide:: { Build , Crate , Toolchain , Workspace , WorkspaceBuilder } ;
13+ use std:: borrow:: Cow ;
1314use std:: path:: Path ;
1415use utils:: { copy_doc_dir, parse_rustc_version, CargoMetadata } ;
1516use Metadata ;
@@ -73,8 +74,12 @@ impl RustwideBuilder {
7374 let workspace = WorkspaceBuilder :: new ( Path :: new ( workspace_path) , USER_AGENT ) . init ( ) ?;
7475 workspace. purge_all_build_dirs ( ) ?;
7576
77+ let toolchain_name = std:: env:: var ( "CRATESFYI_TOOLCHAIN" )
78+ . map ( |t| Cow :: Owned ( t) )
79+ . unwrap_or_else ( |_| Cow :: Borrowed ( "nightly" ) ) ;
80+
7681 let toolchain = Toolchain :: Dist {
77- name : "nightly" . into ( ) ,
82+ name : toolchain_name ,
7883 } ;
7984
8085 Ok ( RustwideBuilder {
@@ -118,10 +123,12 @@ impl RustwideBuilder {
118123 }
119124 }
120125
121- pub fn add_essential_files ( & self ) -> Result < ( ) > {
122- info ! ( "building a dummy crate to get essential files" ) ;
126+ pub fn add_essential_files ( & mut self ) -> Result < ( ) > {
127+ self . rustc_version = self . detect_rustc_version ( ) ? ;
123128 let rustc_version = parse_rustc_version ( & self . rustc_version ) ?;
124129
130+ info ! ( "building a dummy crate to get essential files" ) ;
131+
125132 let conn = connect_db ( ) ?;
126133 let limits = Limits :: for_crate ( & conn, DUMMY_CRATE_NAME ) ?;
127134
0 commit comments