fix updater
This commit is contained in:
@@ -40,17 +40,17 @@ $destDir = '{appDir}'
|
||||
$maxRetries = 10
|
||||
$retryCount = 0
|
||||
|
||||
while ($retryCount -lt $maxRetries) {{
|
||||
try {{
|
||||
while ($retryCount -lt $maxRetries) {
|
||||
try {
|
||||
# Attempt to delete the old executable
|
||||
if (Test-Path $exePath) {{ Remove-Item $exePath -Force -ErrorAction Stop }}
|
||||
if (Test-Path $exePath) { Remove-Item $exePath -Force -ErrorAction Stop }
|
||||
break # If successful, exit loop
|
||||
}}
|
||||
catch {{
|
||||
}
|
||||
catch {
|
||||
Start-Sleep -Milliseconds 500
|
||||
$retryCount++
|
||||
}}
|
||||
}}
|
||||
}
|
||||
}
|
||||
|
||||
# Unzip the new version
|
||||
Expand-Archive -Path $zipPath -DestinationPath $destDir -Force
|
||||
|
||||
@@ -9,7 +9,8 @@ namespace Blueberry
|
||||
{
|
||||
private const string releaseUrl = "https://git.technopunk.space/api/v1/repos/tomi/Blueberry/releases/latest";
|
||||
public const string CurrentVersion = "0.1.4";
|
||||
private static readonly string AppDir = AppDomain.CurrentDomain.BaseDirectory;
|
||||
private static readonly string appDir = AppDomain.CurrentDomain.BaseDirectory;
|
||||
private static readonly string zipPath = Path.Combine(appDir, "blueberry_update.zip");
|
||||
private static readonly HttpClient client = new();
|
||||
public delegate void DownloadCompletedEventArgs();
|
||||
public static event DownloadCompletedEventArgs DownloadCompleted;
|
||||
@@ -39,7 +40,6 @@ namespace Blueberry
|
||||
var file = release.assets.Find(x => x.name.Contains(".zip"));
|
||||
if (file == null) return;
|
||||
|
||||
string zipPath = Path.Combine(AppDir, "blueberry_update.zip");
|
||||
long offset = 0;
|
||||
|
||||
if (File.Exists(zipPath))
|
||||
@@ -90,10 +90,9 @@ namespace Blueberry
|
||||
|
||||
// If offset > 0, we APPEND. If 0, we CREATE/OVERWRITE.
|
||||
var fileMode = offset > 0 ? FileMode.Append : FileMode.Create;
|
||||
string filePath = Path.Combine(AppDir, "blueberry_update.zip");
|
||||
|
||||
using var contentStream = await response.Content.ReadAsStreamAsync();
|
||||
using var fileStream = new FileStream(filePath, fileMode, FileAccess.Write, FileShare.None);
|
||||
using var fileStream = new FileStream(zipPath, fileMode, FileAccess.Write, FileShare.None);
|
||||
|
||||
await contentStream.CopyToAsync(fileStream);
|
||||
isDownloading = false;
|
||||
@@ -106,13 +105,11 @@ namespace Blueberry
|
||||
|
||||
public static async Task PerformUpdate()
|
||||
{
|
||||
string tempZip = Path.Combine(Path.GetTempPath(), "blueberry_update.zip");
|
||||
string currentExe = Process.GetCurrentProcess().MainModule.FileName;
|
||||
string appDir = AppDomain.CurrentDomain.BaseDirectory;
|
||||
|
||||
string psScript = Constants.UpdateScript
|
||||
.Replace("{currentExe}", $"{currentExe}")
|
||||
.Replace("{tempZip}", $"{tempZip}")
|
||||
.Replace("{tempZip}", $"{zipPath}")
|
||||
.Replace("{appDir}", $"{appDir}");
|
||||
string psPath = Path.Combine(Path.GetTempPath(), "blueberry_updater.ps1");
|
||||
File.WriteAllText(psPath, psScript);
|
||||
|
||||
Reference in New Issue
Block a user