add reftag commandline argument
This commit is contained in:
@@ -11,6 +11,7 @@ internal class Options
|
|||||||
public bool Help { get; private set; }
|
public bool Help { get; private set; }
|
||||||
public bool Silent { get; private set; }
|
public bool Silent { get; private set; }
|
||||||
public bool NoUi { get; private set; }
|
public bool NoUi { get; private set; }
|
||||||
|
public string RefTag { get; private set; }
|
||||||
public UpdateCheckOptionsAdv UpdateOptions { get; } = new();
|
public UpdateCheckOptionsAdv UpdateOptions { get; } = new();
|
||||||
|
|
||||||
public Options(string[] args)
|
public Options(string[] args)
|
||||||
@@ -28,6 +29,7 @@ internal class Options
|
|||||||
{ "m|maintenance", "Ignores the maintenance mode.", m => UpdateOptions.IgnoreMaintenance = true},
|
{ "m|maintenance", "Ignores the maintenance mode.", m => UpdateOptions.IgnoreMaintenance = true},
|
||||||
{ "i|nonpublic", "Include non public (currently hidden) updates.", i => UpdateOptions.IncludeNonPublic = true},
|
{ "i|nonpublic", "Include non public (currently hidden) updates.", i => UpdateOptions.IncludeNonPublic = true},
|
||||||
{ "k|key=", "An key for retriving extra files on updates.", k => UpdateOptions.ExtrasKey = k},
|
{ "k|key=", "An key for retriving extra files on updates.", k => UpdateOptions.ExtrasKey = k},
|
||||||
|
{ "r|reftag=", "Force uses a specific version, if supported.", r => RefTag = r},
|
||||||
};
|
};
|
||||||
|
|
||||||
additionals.AddRange(options.Parse(args));
|
additionals.AddRange(options.Parse(args));
|
||||||
|
|||||||
@@ -48,17 +48,21 @@ public static class Extensions
|
|||||||
return @this.SourceUrl.Replace("{version}", version.ToString(3));
|
return @this.SourceUrl.Replace("{version}", version.ToString(3));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetInstallUrl(this ModpackConfig @this)
|
public static string GetInstallUrl(this ModpackConfig @this, string? overwriteRefTag = null)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(@this.RefTag))
|
if (!string.IsNullOrWhiteSpace(overwriteRefTag))
|
||||||
return @this.InstallUrl;
|
return @this.InstallUrl.Replace("{ref}", overwriteRefTag);
|
||||||
return @this.InstallUrl.Replace("{ref}", @this.RefTag);
|
if (!string.IsNullOrWhiteSpace(@this.RefTag))
|
||||||
|
return @this.InstallUrl.Replace("{ref}", @this.RefTag);
|
||||||
|
return @this.InstallUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetUpdateUrl(this ModpackConfig @this)
|
public static string GetUpdateUrl(this ModpackConfig @this, string? overwriteRefTag = null)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(@this.RefTag))
|
if (!string.IsNullOrWhiteSpace(overwriteRefTag))
|
||||||
return @this.UpdateUrl;
|
return @this.UpdateUrl.Replace("{ref}", overwriteRefTag);
|
||||||
return @this.UpdateUrl.Replace("{ref}", @this.RefTag);
|
if (!string.IsNullOrWhiteSpace(@this.RefTag))
|
||||||
|
return @this.UpdateUrl.Replace("{ref}", @this.RefTag);
|
||||||
|
return @this.UpdateUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -21,6 +21,7 @@ public class ModpackInstaller(ModpackConfig updateConfig, ModpackInfo modpackInf
|
|||||||
public delegate void CheckingProgressUpdatedEventHandler(int toCheck, int processed);
|
public delegate void CheckingProgressUpdatedEventHandler(int toCheck, int processed);
|
||||||
|
|
||||||
public ILogger Log { get; set; } = NullLogger.Instance;
|
public ILogger Log { get; set; } = NullLogger.Instance;
|
||||||
|
public string? OverwriteRefTag { get; set; }
|
||||||
|
|
||||||
private readonly HttpClient http = new();
|
private readonly HttpClient http = new();
|
||||||
private readonly ModpackFactory factory = new();
|
private readonly ModpackFactory factory = new();
|
||||||
@@ -32,13 +33,13 @@ public class ModpackInstaller(ModpackConfig updateConfig, ModpackInfo modpackInf
|
|||||||
|
|
||||||
private async Task<UpdateInfos> DownloadUpdateInfos()
|
private async Task<UpdateInfos> DownloadUpdateInfos()
|
||||||
{
|
{
|
||||||
var content = await http.GetStringAsync(updateConfig.GetUpdateUrl());
|
var content = await http.GetStringAsync(updateConfig.GetUpdateUrl(overwriteRefTag: OverwriteRefTag));
|
||||||
return UpdateInfos.Parse(content);
|
return UpdateInfos.Parse(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<InstallInfos> DownloadInstallInfos()
|
private async Task<InstallInfos> DownloadInstallInfos()
|
||||||
{
|
{
|
||||||
var content = await http.GetStringAsync(updateConfig.GetInstallUrl());
|
var content = await http.GetStringAsync(updateConfig.GetInstallUrl(overwriteRefTag: OverwriteRefTag));
|
||||||
return InstallInfos.Parse(content);
|
return InstallInfos.Parse(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user