mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
handle exceptions in sample and add more logging
This commit is contained in:
@@ -83,16 +83,20 @@ private:
|
||||
}
|
||||
|
||||
downloaded = false;
|
||||
updateInfo = updateManager->CheckForUpdates();
|
||||
|
||||
if (updateInfo.has_value())
|
||||
try
|
||||
{
|
||||
topText->SetLabel("Update Found: " + updateInfo.value().TargetFullRelease.Version);
|
||||
}
|
||||
else
|
||||
{
|
||||
topText->SetLabel("No Update Found.");
|
||||
updateInfo = updateManager->CheckForUpdates();
|
||||
if (updateInfo.has_value())
|
||||
{
|
||||
topText->SetLabel("Update Found: " + updateInfo.value().TargetFullRelease.Version);
|
||||
}
|
||||
else
|
||||
{
|
||||
topText->SetLabel("No Update Found.");
|
||||
}
|
||||
}
|
||||
catch (...) { /* exception will print in log */ }
|
||||
}
|
||||
|
||||
void OnDownloadUpdates(wxCommandEvent& event)
|
||||
@@ -106,12 +110,16 @@ private:
|
||||
// start download on new thread
|
||||
std::thread([this]()
|
||||
{
|
||||
updateManager->DownloadUpdates(updateInfo.value(), &MyFrame::HandleProgressCallbackStatic, this);
|
||||
downloaded = true;
|
||||
wxTheApp->CallAfter([this]()
|
||||
try
|
||||
{
|
||||
topText->SetLabel("Download Complete.");
|
||||
});
|
||||
updateManager->DownloadUpdates(updateInfo.value(), &MyFrame::HandleProgressCallbackStatic, this);
|
||||
downloaded = true;
|
||||
wxTheApp->CallAfter([this]()
|
||||
{
|
||||
topText->SetLabel("Download Complete.");
|
||||
});
|
||||
}
|
||||
catch (...) { /* exception will print in log */ }
|
||||
}).detach();
|
||||
}
|
||||
|
||||
@@ -123,15 +131,24 @@ private:
|
||||
return;
|
||||
}
|
||||
|
||||
updateManager->WaitExitThenApplyUpdate(updateInfo.value());
|
||||
exit(0);
|
||||
try
|
||||
{
|
||||
updateManager->WaitExitThenApplyUpdate(updateInfo.value());
|
||||
wxTheApp->ExitMainLoop();
|
||||
}
|
||||
catch (...) { /* exception will print in log */ }
|
||||
|
||||
}
|
||||
|
||||
void HandleVpkcLog(const char* pszLevel, const char* pszMessage)
|
||||
{
|
||||
std::string level(pszLevel);
|
||||
std::string message(pszMessage);
|
||||
textArea->AppendText(level + ": " + message + "\n");
|
||||
wxTheApp->CallAfter([this, level, message]() {
|
||||
if (textArea) { // Ensure textArea is valid.
|
||||
textArea->AppendText(level + ": " + message + "\n");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static void HandleVpkcLogStatic(void* context, const char* pszLevel, const char* pszMessage)
|
||||
|
||||
@@ -59,6 +59,7 @@ where
|
||||
Ok(_) => true,
|
||||
Err(e) => {
|
||||
*last_error = format!("{:?}", e);
|
||||
log::error!("{:?}", e);
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -460,7 +460,10 @@ impl UpdateManager {
|
||||
|
||||
let mut p = Process::new(&self.locator.get_update_path());
|
||||
p.args(&args);
|
||||
p.current_dir(&self.locator.get_root_dir());
|
||||
|
||||
if let Some(update_exe_parent) = self.locator.get_update_path().parent() {
|
||||
p.current_dir(update_exe_parent);
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user