add latest release version check
This commit is contained in:
parent
d64595e2f9
commit
95b6e5147d
@ -5,8 +5,8 @@
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<AssemblyVersion>1.3.8</AssemblyVersion>
|
||||
<FileVersion>1.3.8</FileVersion>
|
||||
<AssemblyVersion>1.3.9</AssemblyVersion>
|
||||
<FileVersion>1.3.9</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<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>()
|
||||
{
|
||||
Title = Prompt,
|
||||
MoreChoicesText = "Move cursor to see more versions",
|
||||
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);
|
||||
|
@ -66,8 +66,6 @@ namespace EftPatchHelper.Tasks
|
||||
ctx.Refresh();
|
||||
}
|
||||
});
|
||||
|
||||
AnsiConsole.Write(new Rule());
|
||||
}
|
||||
|
||||
public void Run()
|
||||
|
@ -2,6 +2,7 @@
|
||||
using EftPatchHelper.Helpers;
|
||||
using EftPatchHelper.Interfaces;
|
||||
using EftPatchHelper.Model;
|
||||
using Gitea.Api;
|
||||
using Spectre.Console;
|
||||
|
||||
namespace EftPatchHelper.Tasks
|
||||
@ -19,9 +20,9 @@ namespace EftPatchHelper.Tasks
|
||||
_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();
|
||||
ConfirmationPrompt changeVersion = new ConfirmationPrompt($"Update settings target version to use [purple]{_options.TargetClient.Version}[/]?");
|
||||
@ -36,13 +37,13 @@ namespace EftPatchHelper.Tasks
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool ConfirmExistingTargetVersion()
|
||||
private bool ConfirmExistingTargetVersion(string currentReleaseVersion)
|
||||
{
|
||||
_clientSelector.LoadClientList();
|
||||
|
||||
_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.
|
||||
return _options.TargetClient == null || !confirmTarget.Show(AnsiConsole.Console);
|
||||
@ -55,11 +56,33 @@ namespace EftPatchHelper.Tasks
|
||||
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()
|
||||
{
|
||||
if (ConfirmExistingTargetVersion())
|
||||
var currentReleaseVersion = GetCurrentReleaseVersion();
|
||||
|
||||
if (ConfirmExistingTargetVersion(currentReleaseVersion))
|
||||
{
|
||||
ChangeSettingsTargetVersion().ValidateOrExit();
|
||||
ChangeSettingsTargetVersion(currentReleaseVersion).ValidateOrExit();
|
||||
}
|
||||
|
||||
SelectSourceVersion().ValidateOrExit();
|
||||
|
@ -105,10 +105,6 @@ namespace EftPatchHelper.Tasks
|
||||
|
||||
if (!_options.CreateRelease) return;
|
||||
|
||||
Configuration.Default.BasePath = _settings.GiteaApiBasePath;
|
||||
|
||||
Configuration.Default.AddApiKey("token", _settings.GiteaApiKey);
|
||||
|
||||
var repo = new RepositoryApi(Configuration.Default);
|
||||
|
||||
var release = MakeRelease(repo).ValidateOrExit<Release>();
|
||||
|
@ -44,6 +44,8 @@ namespace EftPatchHelper.Tasks
|
||||
|
||||
public void Run()
|
||||
{
|
||||
AnsiConsole.Write(new Rule("Starting Tasks, this will take some time :)"));
|
||||
|
||||
BackupClients().ValidateOrExit();
|
||||
|
||||
CopyData(_options.SourceClient, "[gray]Copying[/] [blue]source[/][gray] to prep area ...[/]").ValidateOrExit();
|
||||
|
@ -1,6 +1,7 @@
|
||||
using EftPatchHelper.Extensions;
|
||||
using EftPatchHelper.Interfaces;
|
||||
using EftPatchHelper.Model;
|
||||
using Gitea.Client;
|
||||
using Spectre.Console;
|
||||
|
||||
namespace EftPatchHelper.Tasks
|
||||
@ -64,6 +65,9 @@ namespace EftPatchHelper.Tasks
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user