From acb2d38d8a66791f1dcc504a5f94ec55422046fe Mon Sep 17 00:00:00 2001 From: Michael Pfaff Date: Thu, 1 Dec 2022 13:43:42 -0500 Subject: [PATCH] Add more debugging in errors and VSCode installer --- src/install.rs | 10 +++++----- src/main.rs | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/install.rs b/src/install.rs index ae20765..717db77 100644 --- a/src/install.rs +++ b/src/install.rs @@ -422,7 +422,7 @@ impl<'a> Step<'a> { ensure!( err == windows_sys::Win32::Foundation::ERROR_SUCCESS, - "RegGetValueA failed" + "RegGetValueA failed: {err}" ); assert!(len <= CAPACITY as u32, "Buffer overflow caught"); @@ -459,13 +459,13 @@ impl<'a> Step<'a> { ensure!( err == windows_sys::Win32::Foundation::ERROR_SUCCESS, - "RegOpenKeyExA failed" + "RegOpenKeyExA failed: {err}" ); // SAFETY: we just opened the key (which sets the handle) and checked for errors. let hkey = unsafe { hkey.assume_init() }; - ensure!(buffer.len() < u32::MAX as usize, "Buffer is too large"); + ensure!(buffer.len() < u32::MAX as usize, "Buffer is too large: {}", buffer.len()); let err = unsafe { windows_sys::Win32::System::Registry::RegSetValueExA( @@ -480,7 +480,7 @@ impl<'a> Step<'a> { ensure!( err == windows_sys::Win32::Foundation::ERROR_SUCCESS, - "RegSetValueExA failed" + "RegSetValueExA failed: {err}" ); let err = unsafe { @@ -489,7 +489,7 @@ impl<'a> Step<'a> { ensure!( err == windows_sys::Win32::Foundation::ERROR_SUCCESS, - "RegCloseKey failed" + "RegCloseKey failed: {err}" ); } } diff --git a/src/main.rs b/src/main.rs index fe2821d..417ceb8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -82,6 +82,9 @@ async fn main() -> Result<()> { let deno_dir = swtools_path!("deno"); //let deno_exe = swtools_path!("deno" / "deno.exe"); + let vscode_zip = swtools_path!("temp" / "vscode.zip"); + let vscode_dir = swtools_path!("vscode"); + let nppp_pl = [ Step::DownloadFile { file: nppp_zip.into(), @@ -258,6 +261,14 @@ async fn main() -> Result<()> { Step::AppendPath(deno_dir.into()), ]; + let vscode_pl = [ + Step::DownloadFile { + file: vscode_zip.into(), + res: RemoteResource::Url("https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-archive"), + }, + Step::ExtractFile { file: vscode_zip.into(), dest: vscode_dir.into() }, + ]; + let pipelines = [ Pipeline::new("Install Notepad++", nppp_pl.as_slice()), Pipeline::new("Install Explorer++", epp_pl.as_slice()), @@ -270,6 +281,7 @@ async fn main() -> Result<()> { Pipeline::new("Install Rust (nightly)", rust_pl.as_slice()), // TODO: add an option to install from src Pipeline::new("Install Deno (pre-compiled)", deno_pl.as_slice()), + Pipeline::new("Install VSCode", vscode_pl.as_slice()), ]; let mut args = std::env::args_os();