updater improvements
This commit is contained in:
parent
02de8e0bf7
commit
e527f6e3d1
|
@ -12,7 +12,7 @@
|
|||
<TabPanel Name="Download" ResourceKey="Download">
|
||||
@if (_upgradeavailable)
|
||||
{
|
||||
<ModuleMessage Type="MessageType.Info" Message="Select The Download Button To Get a New Framework Package And Then Select Upgrade"></ModuleMessage>
|
||||
<ModuleMessage Type="MessageType.Info" Message="Select The Download Button To Download The Framework Upgrade Package And Then Select Upgrade"></ModuleMessage>
|
||||
<button type="button" class="btn btn-primary" @onclick=@(async () => await Download(Constants.PackageId, @_package.Version))>@Localizer["Download"] @_package.Version</button>
|
||||
<button type="button" class="btn btn-success" @onclick="Upgrade">@Localizer["Upgrade"]</button>
|
||||
}
|
||||
|
@ -22,7 +22,7 @@
|
|||
}
|
||||
</TabPanel>
|
||||
<TabPanel Name="Upload" ResourceKey="Upload">
|
||||
<ModuleMessage Type="MessageType.Info" Message="Upload A Framework Package And Then Select Upgrade"></ModuleMessage>
|
||||
<ModuleMessage Type="MessageType.Info" Message="Upload A Framework Upgrade Package And Then Select Upgrade"></ModuleMessage>
|
||||
<table class="table table-borderless">
|
||||
<tr>
|
||||
<td>
|
||||
|
@ -72,9 +72,10 @@
|
|||
{
|
||||
try
|
||||
{
|
||||
AddModuleMessage(Localizer["Please Be Patient While The Upgrade Is In Progress..."], MessageType.Info);
|
||||
ShowProgressIndicator();
|
||||
var interop = new Interop(JSRuntime);
|
||||
await interop.RedirectBrowser(NavigateUrl(), 10);
|
||||
await interop.RedirectBrowser(NavigateUrl(), 30);
|
||||
await InstallationService.Upgrade();
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Oqtane.Updater
|
|||
{
|
||||
// requires 2 arguments - the ContentRootPath and the WebRootPath of the site
|
||||
|
||||
// for testing purposes set Oqtane.Upgrade as startup project and modify values below
|
||||
// for testing purposes you can uncomment and modify the logic below
|
||||
//Array.Resize(ref args, 2);
|
||||
//args[0] = @"C:\yourpath\oqtane.framework\Oqtane.Server";
|
||||
//args[1] = @"C:\yourpath\oqtane.framework\Oqtane.Server\wwwroot";
|
||||
|
@ -31,7 +31,7 @@ namespace Oqtane.Updater
|
|||
if (Directory.Exists(deployfolder))
|
||||
{
|
||||
string packagename = "";
|
||||
string[] packages = Directory.GetFiles(deployfolder, "Oqtane.Upgrade.*.zip");
|
||||
string[] packages = Directory.GetFiles(deployfolder, "Oqtane.Framework.*.Upgrade.zip");
|
||||
if (packages.Length > 0)
|
||||
{
|
||||
packagename = packages[packages.Length - 1]; // use highest version
|
||||
|
@ -58,6 +58,7 @@ namespace Oqtane.Updater
|
|||
// ensure files are not locked
|
||||
if (CanAccessFiles(files))
|
||||
{
|
||||
bool success = true;
|
||||
try
|
||||
{
|
||||
// clear out backup folder
|
||||
|
@ -66,20 +67,41 @@ namespace Oqtane.Updater
|
|||
Directory.Delete(backupfolder, true);
|
||||
}
|
||||
Directory.CreateDirectory(backupfolder);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
success = false;
|
||||
}
|
||||
|
||||
// backup files
|
||||
if (success)
|
||||
{
|
||||
foreach (string file in files)
|
||||
{
|
||||
string filename = Path.Combine(backupfolder, file.Replace(contentrootfolder, ""));
|
||||
string filename = Path.Combine(backupfolder, file.Replace(contentrootfolder + Path.DirectorySeparatorChar, ""));
|
||||
try
|
||||
{
|
||||
if (File.Exists(file))
|
||||
{
|
||||
if (!Directory.Exists(Path.GetDirectoryName(filename)))
|
||||
{
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(filename));
|
||||
}
|
||||
File.Copy(file, filename);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// extract files
|
||||
bool success = true;
|
||||
if (success)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (ZipArchive archive = ZipFile.OpenRead(packagename))
|
||||
|
@ -110,20 +132,34 @@ namespace Oqtane.Updater
|
|||
File.Delete(packagename);
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
// restore on failure
|
||||
foreach (string file in files)
|
||||
{
|
||||
string filename = Path.Combine(backupfolder, file.Replace(contentrootfolder, ""));
|
||||
string filename = Path.Combine(backupfolder, file.Replace(contentrootfolder + Path.DirectorySeparatorChar, ""));
|
||||
if (File.Exists(filename))
|
||||
{
|
||||
File.Copy(filename, file);
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
// clean up backup
|
||||
Directory.Delete(backupfolder, true);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Upgrade Not Successful: " + ex.Message);
|
||||
Console.WriteLine("Update Not Successful: Error Restoring Files - " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Update Not Successful: Could Not Backup All Existing Files");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue
Block a user