summaryrefslogtreecommitdiffstats
path: root/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs
diff options
context:
space:
mode:
authorWouterTinus <wouter.tinus@gmail.com>2019-09-07 01:36:12 +0200
committerWouterTinus <wouter.tinus@gmail.com>2019-09-07 01:36:12 +0200
commit7673fa357a81444cf6c216267dfab4e76684ba5c (patch)
tree73c0bd36e5b6261cd89a168c2a099f6556c59f4d /src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs
parent42aa0faa4de6ea4184cfe1a5830508777418b11a (diff)
downloadletsencrypt-win-simple-7673fa357a81444cf6c216267dfab4e76684ba5c.zip
letsencrypt-win-simple-7673fa357a81444cf6c216267dfab4e76684ba5c.tar.gz
letsencrypt-win-simple-7673fa357a81444cf6c216267dfab4e76684ba5c.tar.bz2
move plugins & re-implement WebDav
Diffstat (limited to 'src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs')
-rw-r--r--src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs
new file mode 100644
index 0000000..2a7836a
--- /dev/null
+++ b/src/main.lib/Plugins/InstallationPlugins/Script/ScriptOptionsFactory.cs
@@ -0,0 +1,61 @@
+using PKISharp.WACS.DomainObjects;
+using PKISharp.WACS.Extensions;
+using PKISharp.WACS.Plugins.Base.Factories;
+using PKISharp.WACS.Plugins.StorePlugins;
+using PKISharp.WACS.Services;
+using System;
+
+namespace PKISharp.WACS.Plugins.InstallationPlugins
+{
+ internal class ScriptOptionsFactory : InstallationPluginFactory<Script, ScriptOptions>
+ {
+ public override int Order => 100;
+ private ILogService _log;
+ private IArgumentsService _arguments;
+
+ public ScriptOptionsFactory(ILogService log, IArgumentsService arguments)
+ {
+ _log = log;
+ _arguments = arguments;
+ }
+
+ public override ScriptOptions Aquire(Target target, IInputService inputService, RunLevel runLevel)
+ {
+ var ret = new ScriptOptions();
+ var args = _arguments.GetArguments<ScriptArguments>();
+ inputService.Show("Full instructions", "https://github.com/PKISharp/win-acme/wiki/Install-Script");
+ do
+ {
+ ret.Script = _arguments.TryGetArgument(args.Script, inputService, "Enter the path to the script that you want to run after renewal");
+ }
+ while (!ret.Script.ValidFile(_log));
+
+ inputService.Show("{CertCommonName}", "Common name (primary domain name)");
+ inputService.Show("{CachePassword}", ".pfx password");
+ inputService.Show("{CacheFile}", ".pfx full path");
+ inputService.Show("{CertFriendlyName}", "Certificate friendly name");
+ inputService.Show("{CertThumbprint}", "Certificate thumbprint");
+ inputService.Show("{StoreType}", $"Type of store ({CentralSslOptions.PluginName}/{CertificateStoreOptions.PluginName}/{PemFilesOptions.PluginName})");
+ inputService.Show("{StorePath}", "Path to the store");
+ inputService.Show("{RenewalId}", "Renewal identifier");
+
+ ret.ScriptParameters = _arguments.TryGetArgument(args.ScriptParameters, inputService, "Enter the parameter format string for the script, e.g. \"--hostname {CertCommonName}\"");
+ return ret;
+ }
+
+ public override ScriptOptions Default(Target target)
+ {
+ var args = _arguments.GetArguments<ScriptArguments>();
+ var ret = new ScriptOptions
+ {
+ Script = _arguments.TryGetRequiredArgument(nameof(args.Script), args.Script)
+ };
+ if (!ret.Script.ValidFile(_log))
+ {
+ throw new ArgumentException(nameof(args.Script));
+ }
+ ret.ScriptParameters = args.ScriptParameters;
+ return ret;
+ }
+ }
+}