add latest release version check
This commit is contained in:
parent
d64595e2f9
commit
95b6e5147d
@ -5,8 +5,8 @@
|
|||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<AssemblyVersion>1.3.8</AssemblyVersion>
|
<AssemblyVersion>1.3.9</AssemblyVersion>
|
||||||
<FileVersion>1.3.8</FileVersion>
|
<FileVersion>1.3.9</FileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -75,14 +75,20 @@ namespace EftPatchHelper.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public EftClient GetClientSelection(string Prompt)
|
public EftClient GetClientSelection(string Prompt, string currentReleaseVersion = "")
|
||||||
{
|
{
|
||||||
SelectionPrompt<EftClient> clientPrompt = new SelectionPrompt<EftClient>()
|
SelectionPrompt<EftClient> clientPrompt = new SelectionPrompt<EftClient>()
|
||||||
{
|
{
|
||||||
Title = Prompt,
|
Title = Prompt,
|
||||||
MoreChoicesText = "Move cursor to see more versions",
|
MoreChoicesText = "Move cursor to see more versions",
|
||||||
PageSize = 10,
|
PageSize = 10,
|
||||||
Converter = (x) => x.DisplayName
|
Converter = (x) =>
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(currentReleaseVersion) && x.Version.EndsWith(currentReleaseVersion))
|
||||||
|
return $"{x.DisplayName} - Latest Release";
|
||||||
|
|
||||||
|
return x.DisplayName;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
clientPrompt.AddChoices(_clientList);
|
clientPrompt.AddChoices(_clientList);
|
||||||
|
@ -66,8 +66,6 @@ namespace EftPatchHelper.Tasks
|
|||||||
ctx.Refresh();
|
ctx.Refresh();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
AnsiConsole.Write(new Rule());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Run()
|
public void Run()
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using EftPatchHelper.Helpers;
|
using EftPatchHelper.Helpers;
|
||||||
using EftPatchHelper.Interfaces;
|
using EftPatchHelper.Interfaces;
|
||||||
using EftPatchHelper.Model;
|
using EftPatchHelper.Model;
|
||||||
|
using Gitea.Api;
|
||||||
using Spectre.Console;
|
using Spectre.Console;
|
||||||
|
|
||||||
namespace EftPatchHelper.Tasks
|
namespace EftPatchHelper.Tasks
|
||||||
@ -19,9 +20,9 @@ namespace EftPatchHelper.Tasks
|
|||||||
_clientSelector = clientSelector;
|
_clientSelector = clientSelector;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ChangeSettingsTargetVersion()
|
private bool ChangeSettingsTargetVersion(string currentReleaseVersion)
|
||||||
{
|
{
|
||||||
_options.TargetClient = _clientSelector.GetClientSelection("Select [yellow]Target[/] Version");
|
_options.TargetClient = _clientSelector.GetClientSelection("Select [yellow]Target[/] Version", currentReleaseVersion);
|
||||||
|
|
||||||
AnsiConsole.WriteLine();
|
AnsiConsole.WriteLine();
|
||||||
ConfirmationPrompt changeVersion = new ConfirmationPrompt($"Update settings target version to use [purple]{_options.TargetClient.Version}[/]?");
|
ConfirmationPrompt changeVersion = new ConfirmationPrompt($"Update settings target version to use [purple]{_options.TargetClient.Version}[/]?");
|
||||||
@ -36,13 +37,13 @@ namespace EftPatchHelper.Tasks
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ConfirmExistingTargetVersion()
|
private bool ConfirmExistingTargetVersion(string currentReleaseVersion)
|
||||||
{
|
{
|
||||||
_clientSelector.LoadClientList();
|
_clientSelector.LoadClientList();
|
||||||
|
|
||||||
_options.TargetClient = _clientSelector.GetClient(_settings.TargetEftVersion);
|
_options.TargetClient = _clientSelector.GetClient(_settings.TargetEftVersion);
|
||||||
|
|
||||||
ConfirmationPrompt confirmTarget = new ConfirmationPrompt($"Use version [purple]{_settings.TargetEftVersion}[/] as target?");
|
ConfirmationPrompt confirmTarget = new ConfirmationPrompt($"Use version [purple]{_settings.TargetEftVersion}[/] {(_options.TargetClient.Version.EndsWith(currentReleaseVersion) ? " ([green]latest release[/])" : "")} as target?");
|
||||||
|
|
||||||
// If client is null or requested change, return false to ensure change settings target is called.
|
// If client is null or requested change, return false to ensure change settings target is called.
|
||||||
return _options.TargetClient == null || !confirmTarget.Show(AnsiConsole.Console);
|
return _options.TargetClient == null || !confirmTarget.Show(AnsiConsole.Console);
|
||||||
@ -55,11 +56,33 @@ namespace EftPatchHelper.Tasks
|
|||||||
return _options.SourceClient != null;
|
return _options.SourceClient != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetCurrentReleaseVersion()
|
||||||
|
{
|
||||||
|
if (!_settings.UsingGitea())
|
||||||
|
return "";
|
||||||
|
|
||||||
|
return AnsiConsole.Status().Start("Starting...", ctx =>
|
||||||
|
{
|
||||||
|
RepositoryApi repo = new RepositoryApi();
|
||||||
|
|
||||||
|
ctx.Spinner = Spinner.Known.Dots8;
|
||||||
|
ctx.Status = "Getting latest release ...";
|
||||||
|
|
||||||
|
var releases = repo.RepoListReleases("SPT-AKI", "Stable-releases");
|
||||||
|
|
||||||
|
var release = releases.First(x => !x.Prerelease).Name.Split('(')[1];
|
||||||
|
|
||||||
|
return release.Remove(release.Length - 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void Run()
|
public void Run()
|
||||||
{
|
{
|
||||||
if (ConfirmExistingTargetVersion())
|
var currentReleaseVersion = GetCurrentReleaseVersion();
|
||||||
|
|
||||||
|
if (ConfirmExistingTargetVersion(currentReleaseVersion))
|
||||||
{
|
{
|
||||||
ChangeSettingsTargetVersion().ValidateOrExit();
|
ChangeSettingsTargetVersion(currentReleaseVersion).ValidateOrExit();
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectSourceVersion().ValidateOrExit();
|
SelectSourceVersion().ValidateOrExit();
|
||||||
|
@ -105,10 +105,6 @@ namespace EftPatchHelper.Tasks
|
|||||||
|
|
||||||
if (!_options.CreateRelease) return;
|
if (!_options.CreateRelease) return;
|
||||||
|
|
||||||
Configuration.Default.BasePath = _settings.GiteaApiBasePath;
|
|
||||||
|
|
||||||
Configuration.Default.AddApiKey("token", _settings.GiteaApiKey);
|
|
||||||
|
|
||||||
var repo = new RepositoryApi(Configuration.Default);
|
var repo = new RepositoryApi(Configuration.Default);
|
||||||
|
|
||||||
var release = MakeRelease(repo).ValidateOrExit<Release>();
|
var release = MakeRelease(repo).ValidateOrExit<Release>();
|
||||||
|
@ -44,6 +44,8 @@ namespace EftPatchHelper.Tasks
|
|||||||
|
|
||||||
public void Run()
|
public void Run()
|
||||||
{
|
{
|
||||||
|
AnsiConsole.Write(new Rule("Starting Tasks, this will take some time :)"));
|
||||||
|
|
||||||
BackupClients().ValidateOrExit();
|
BackupClients().ValidateOrExit();
|
||||||
|
|
||||||
CopyData(_options.SourceClient, "[gray]Copying[/] [blue]source[/][gray] to prep area ...[/]").ValidateOrExit();
|
CopyData(_options.SourceClient, "[gray]Copying[/] [blue]source[/][gray] to prep area ...[/]").ValidateOrExit();
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using EftPatchHelper.Extensions;
|
using EftPatchHelper.Extensions;
|
||||||
using EftPatchHelper.Interfaces;
|
using EftPatchHelper.Interfaces;
|
||||||
using EftPatchHelper.Model;
|
using EftPatchHelper.Model;
|
||||||
|
using Gitea.Client;
|
||||||
using Spectre.Console;
|
using Spectre.Console;
|
||||||
|
|
||||||
namespace EftPatchHelper.Tasks
|
namespace EftPatchHelper.Tasks
|
||||||
@ -64,6 +65,9 @@ namespace EftPatchHelper.Tasks
|
|||||||
|
|
||||||
if (_settings.UsingGitea())
|
if (_settings.UsingGitea())
|
||||||
{
|
{
|
||||||
|
Configuration.Default.BasePath = _settings.GiteaApiBasePath;
|
||||||
|
Configuration.Default.AddApiKey("token", _settings.GiteaApiKey);
|
||||||
|
|
||||||
_options.CreateRelease = new ConfirmationPrompt("Create a release on gitea?").Show(AnsiConsole.Console);
|
_options.CreateRelease = new ConfirmationPrompt("Create a release on gitea?").Show(AnsiConsole.Console);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user