Skip to content

Commit b1e8804

Browse files
committed
Add hard-coded support for Rtools45
For now...
1 parent de3945d commit b1e8804

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/windows.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,13 +150,23 @@ fn add_rtools(version: String) -> Result<(), Box<dyn Error>> {
150150
}
151151
let client = &reqwest::Client::new();
152152
for ver in vers {
153+
let rtools45 = &ver[0..2] == "45";
153154
let rtools44 = &ver[0..2] == "44";
154155
let rtools43 = &ver[0..2] == "43";
155156
let rtools42 = &ver[0..2] == "42";
156157
let rtools4 = &ver[0..1] == "4";
157158
let filename: String;
158159
let url: String;
159-
if rtools44 {
160+
if rtools45 {
161+
let rt45=Path::new("C:\\Rtools45");
162+
if rt45.exists() {
163+
info!("Rtools45 is already installed");
164+
continue;
165+
}
166+
filename = "rtools45.exe".to_string();
167+
url = "https://github.com/r-hub/rtools45/releases/download/latest/rtools45.exe"
168+
.to_string();
169+
} else if rtools44 {
160170
let rt44=Path::new("C:\\Rtools44");
161171
if rt44.exists() {
162172
info!("Rtools44 is already installed");
@@ -292,6 +302,8 @@ fn get_rtools_needed(version: Option<Vec<String>>) -> Result<Vec<String>, Box<dy
292302
let v42 = "42".to_string();
293303
let v43 = "43".to_string();
294304
let v44 = "44".to_string();
305+
let v45 = "45".to_string();
306+
let sv450 = semver::Version::parse("4.5.0")?;
295307
let sv440 = semver::Version::parse("4.4.0")?;
296308
let sv430 = semver::Version::parse("4.3.0")?;
297309
let sv420 = semver::Version::parse("4.2.0")?;
@@ -300,17 +312,21 @@ fn get_rtools_needed(version: Option<Vec<String>>) -> Result<Vec<String>, Box<dy
300312
if !res.contains(&v35) {
301313
res.push(v35);
302314
}
315+
} else if sv >= sv450 {
316+
if !res.contains(&v45) {
317+
res.push(v45);
318+
}
303319
} else if sv >= sv440 {
304320
if !res.contains(&v44) {
305-
res.push(v44)
321+
res.push(v44);
306322
}
307323
} else if sv >= sv430 {
308324
if !res.contains(&v43) {
309-
res.push(v43)
325+
res.push(v43);
310326
}
311327
} else if sv >= sv420 {
312328
if !res.contains(&v42) {
313-
res.push(v42)
329+
res.push(v42);
314330
}
315331
} else if &ver[0..1] == "4" {
316332
if !res.contains(&v40) {

0 commit comments

Comments
 (0)