diff --git a/NEWS.md b/NEWS.md index a5cc7ed..8157f9f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,8 @@ +# rig 0.6.1 (prerelease) + +* rig now supports Rtools44 on Windows. + # rig 0.6.0 * rig now supports RPM based distros, in addition to Deboan and Ubuntu (#28). diff --git a/src/windows.rs b/src/windows.rs index 891637c..e767515 100644 --- a/src/windows.rs +++ b/src/windows.rs @@ -150,12 +150,22 @@ fn add_rtools(version: String) -> Result<(), Box> { } let client = &reqwest::Client::new(); for ver in vers { + let rtools44 = &ver[0..2] == "44"; let rtools43 = &ver[0..2] == "43"; let rtools42 = &ver[0..2] == "42"; let rtools4 = &ver[0..1] == "4"; let filename: String; let url: String; - if rtools43 { + if rtools44 { + let rt44=Path::new("C:\\Rtools44"); + if rt44.exists() { + info!("Rtools44 is already installed"); + continue; + } + filename = "rtools44.exe".to_string(); + url = "https://github.com/r-hub/rtools44/releases/download/latest/rtools44.exe" + .to_string(); + } else if rtools43 { let rt43=Path::new("C:\\Rtools43"); if rt43.exists() { info!("Rtools43 is already installed"); @@ -279,17 +289,29 @@ fn get_rtools_needed(version: Option>) -> Result, Box= sv440 { + if !res.contains(&v44) { + res.push(v44) + } } else if sv >= sv430 { if !res.contains(&v43) { res.push(v43) } + } else if sv >= sv420 { + if !res.contains(&v42) { + res.push(v42) + } } else if &ver[0..1] == "4" { if !res.contains(&v40) { res.push(v40);