diff options
Diffstat (limited to 'src/main.lib/Plugins/InstallationPlugins/Script')
3 files changed, 28 insertions, 25 deletions
diff --git a/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs b/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs index 5cb9df4..74cb1f7 100644 --- a/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs +++ b/src/main.lib/Plugins/InstallationPlugins/Script/Script.cs @@ -22,28 +22,31 @@ namespace PKISharp.WACS.Plugins.InstallationPlugins public async Task Install(IEnumerable<IStorePlugin> store, CertificateInfo newCertificate, CertificateInfo oldCertificate) { - var defaultStoreType = store.First().GetType(); - var defaultStoreInfo = newCertificate.StoreInfo[defaultStoreType]; - var parameters = _options.ScriptParameters ?? ""; - parameters = parameters.Replace("{0}", newCertificate.SubjectName); - parameters = parameters.Replace("{1}", _renewal.PfxPassword?.Value); - parameters = parameters.Replace("{2}", newCertificate.CacheFile?.FullName); - parameters = parameters.Replace("{3}", defaultStoreInfo.Path); - parameters = parameters.Replace("{4}", newCertificate.Certificate.FriendlyName); - parameters = parameters.Replace("{5}", newCertificate.Certificate.Thumbprint); - parameters = parameters.Replace("{6}", newCertificate.CacheFile?.Directory.FullName); - parameters = parameters.Replace("{7}", _renewal.Id); + if (_options.Script != null) + { + var defaultStoreType = store.First().GetType(); + var defaultStoreInfo = newCertificate.StoreInfo[defaultStoreType]; + var parameters = _options.ScriptParameters ?? ""; + parameters = parameters.Replace("{0}", newCertificate.SubjectName); + parameters = parameters.Replace("{1}", _renewal.PfxPassword?.Value); + parameters = parameters.Replace("{2}", newCertificate.CacheFile?.FullName); + parameters = parameters.Replace("{3}", defaultStoreInfo.Path); + parameters = parameters.Replace("{4}", newCertificate.Certificate.FriendlyName); + parameters = parameters.Replace("{5}", newCertificate.Certificate.Thumbprint); + parameters = parameters.Replace("{6}", newCertificate.CacheFile?.Directory.FullName); + parameters = parameters.Replace("{7}", _renewal.Id); - parameters = parameters.Replace("{CachePassword}", _renewal.PfxPassword?.Value); - parameters = parameters.Replace("{CacheFile}", newCertificate.CacheFile?.FullName); - parameters = parameters.Replace("{CacheFolder}", newCertificate.CacheFile?.FullName); - parameters = parameters.Replace("{CertCommonName}", newCertificate.SubjectName); - parameters = parameters.Replace("{CertFriendlyName}", newCertificate.Certificate.FriendlyName); - parameters = parameters.Replace("{CertThumbprint}", newCertificate.Certificate.Thumbprint); - parameters = parameters.Replace("{StoreType}", defaultStoreInfo.Name); - parameters = parameters.Replace("{StorePath}", defaultStoreInfo.Path); - parameters = parameters.Replace("{RenewalId}", _renewal.Id); - await _client.RunScript(_options.Script, parameters); + parameters = parameters.Replace("{CachePassword}", _renewal.PfxPassword?.Value); + parameters = parameters.Replace("{CacheFile}", newCertificate.CacheFile?.FullName); + parameters = parameters.Replace("{CacheFolder}", newCertificate.CacheFile?.FullName); + parameters = parameters.Replace("{CertCommonName}", newCertificate.SubjectName); + parameters = parameters.Replace("{CertFriendlyName}", newCertificate.Certificate.FriendlyName); + parameters = parameters.Replace("{CertThumbprint}", newCertificate.Certificate.Thumbprint); + parameters = parameters.Replace("{StoreType}", defaultStoreInfo.Name); + parameters = parameters.Replace("{StorePath}", defaultStoreInfo.Path); + parameters = parameters.Replace("{RenewalId}", _renewal.Id); + await _client.RunScript(_options.Script, parameters); + } } public bool Disabled => false; diff --git a/src/main.lib/Plugins/InstallationPlugins/Script/ScriptArguments.cs b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptArguments.cs index d635bb9..0c9318f 100644 --- a/src/main.lib/Plugins/InstallationPlugins/Script/ScriptArguments.cs +++ b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptArguments.cs @@ -2,7 +2,7 @@ { internal class ScriptArguments { - public string Script { get; set; } - public string ScriptParameters { get; set; } + public string? Script { get; set; } + public string? ScriptParameters { get; set; } } } diff --git a/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptions.cs b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptions.cs index 4e9be94..147ba58 100644 --- a/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptions.cs +++ b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptions.cs @@ -10,8 +10,8 @@ namespace PKISharp.WACS.Plugins.InstallationPlugins public override string Name => "Script"; public override string Description => "Start external script or program"; - public string Script { get; set; } - public string ScriptParameters { get; set; } + public string? Script { get; set; } + public string? ScriptParameters { get; set; } /// <summary> /// Show details to the user |