feat(sdk): --require-signature ueber LaunchUpdateAgent erreichbar
Der Schalter gab es bisher nur auf der Kommandozeile. LaunchUpdateAgent, der vom Leitfaden empfohlene Weg, hatte dafuer keinen Parameter - jede Anwendung, die diesem Weg folgte, aktualisierte damit ungeprueft, waehrend derselbe Vorgang von Hand geschuetzt gewesen waere. Neuer optionaler Parameter requireSignature (Vorgabe false, keine Verhaltensaenderung fuer bestehende Aufrufer). Der oeffentliche Schluessel muss dafuer nicht separat verwaltet werden, der Agent holt und cached ihn selbst. SDK auf 2.5.2, Changelog- und Leitfaden-Eintrag ergaenzt.
This commit is contained in:
@@ -338,6 +338,15 @@ namespace Deploymentcenter.Client
|
||||
/// Anwendung abwartet, bevor er Dateien ersetzt. Ohne diesen Handschlag
|
||||
/// kopiert er bei langsamem Herunterfahren ueber gesperrte Dateien.
|
||||
/// </param>
|
||||
/// <param name="requireSignature">
|
||||
/// Reicht <c>--require-signature</c> an den Agenten durch. Ohne diesen
|
||||
/// Parameter gab es dafuer nur den Kommandozeilenschalter - jede
|
||||
/// Anwendung, die dem Leitfaden folgt und ueber diese Methode
|
||||
/// startet, aktualisierte damit ungeprueft, waehrend derselbe Aufruf
|
||||
/// von Hand auf der Kommandozeile geschuetzt gewesen waere. Den
|
||||
/// oeffentlichen Schluessel muss dafuer niemand selbst verwalten: der
|
||||
/// Agent holt und cached ihn ohnehin von <c>/api/updateservice/v1/pubkey</c>.
|
||||
/// </param>
|
||||
public static bool LaunchUpdateAgent(
|
||||
string agentPath,
|
||||
string projectId,
|
||||
@@ -351,7 +360,8 @@ namespace Deploymentcenter.Client
|
||||
string? platform = null,
|
||||
bool waitForCurrentProcess = true,
|
||||
string? licenseKey = null,
|
||||
int waitTimeoutSeconds = 60)
|
||||
int waitTimeoutSeconds = 60,
|
||||
bool requireSignature = false)
|
||||
{
|
||||
if (!File.Exists(agentPath))
|
||||
{
|
||||
@@ -418,6 +428,11 @@ namespace Deploymentcenter.Client
|
||||
AppendArg(args, "--restart", restart!);
|
||||
}
|
||||
|
||||
if (requireSignature)
|
||||
{
|
||||
AppendFlag(args, "--require-signature");
|
||||
}
|
||||
|
||||
var startInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = agentPath,
|
||||
@@ -468,6 +483,12 @@ namespace Deploymentcenter.Client
|
||||
builder.Append("\" ");
|
||||
}
|
||||
|
||||
private static void AppendFlag(StringBuilder builder, string name)
|
||||
{
|
||||
builder.Append(name);
|
||||
builder.Append(' ');
|
||||
}
|
||||
|
||||
private static string? GetCurrentExecutablePath()
|
||||
{
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user