@@ -8,10 +8,7 @@ use std::fs::{self, File};
8
8
use std:: io;
9
9
use tempfile:: tempdir;
10
10
11
- // we're using an old version of rustup, since rustup 1.28 is broken for rustwide for now.
12
- // We'll try to either fix rustup, or adapt rustwide to fix this, until then, we'll use this version.
13
- // see https://github.com/rust-lang/rustup/issues/4224
14
- static RUSTUP_VERSION : & str = "1.27.1" ;
11
+ static RUSTUP_BASE_URL : & str = "https://static.rust-lang.org/rustup/dist" ;
15
12
16
13
pub ( crate ) struct Rustup ;
17
14
@@ -40,10 +37,10 @@ impl Tool for Rustup {
40
37
fs:: create_dir_all ( workspace. rustup_home ( ) ) ?;
41
38
42
39
let url = format ! (
43
- "https://static.rust-lang.org/rustup/archive/{version }/{target }/rustup-init{exe_suffix }" ,
44
- version = RUSTUP_VERSION ,
45
- target = crate :: HOST_TARGET ,
46
- exe_suffix = EXE_SUFFIX
40
+ "{ }/{}/rustup-init{}" ,
41
+ RUSTUP_BASE_URL ,
42
+ crate :: HOST_TARGET ,
43
+ EXE_SUFFIX
47
44
) ;
48
45
let mut resp = workspace
49
46
. http_client ( )
@@ -78,7 +75,11 @@ impl Tool for Rustup {
78
75
79
76
fn update ( & self , workspace : & Workspace , _fast_install : bool ) -> anyhow:: Result < ( ) > {
80
77
Command :: new ( workspace, & RUSTUP )
81
- . args ( & [ "update" , MAIN_TOOLCHAIN_NAME , "--no-self-update" ] )
78
+ . args ( & [ "self" , "update" ] )
79
+ . run ( )
80
+ . context ( "failed to update rustup" ) ?;
81
+ Command :: new ( workspace, & RUSTUP )
82
+ . args ( & [ "update" , MAIN_TOOLCHAIN_NAME ] )
82
83
. run ( )
83
84
. with_context ( || format ! ( "failed to update main toolchain {}" , MAIN_TOOLCHAIN_NAME ) ) ?;
84
85
Ok ( ( ) )
0 commit comments