summaryrefslogtreecommitdiffstats
path: root/src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs
diff options
context:
space:
mode:
authorWouterTinus <wouter.tinus@gmail.com>2019-01-10 09:07:19 +0100
committerWouterTinus <wouter.tinus@gmail.com>2019-01-10 09:07:19 +0100
commit43c1d305e335e7af46ca63e849c9da514bb9302a (patch)
tree23280b39f20511005606460913fa9e8cec75bacf /src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs
parent45003b931b04e21f7a1c9a592e9d87449bf7887e (diff)
downloadletsencrypt-win-simple-43c1d305e335e7af46ca63e849c9da514bb9302a.zip
letsencrypt-win-simple-43c1d305e335e7af46ca63e849c9da514bb9302a.tar.gz
letsencrypt-win-simple-43c1d305e335e7af46ca63e849c9da514bb9302a.tar.bz2
Move plugins in preparation for argument splitting
Diffstat (limited to 'src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs')
-rw-r--r--src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs b/src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs
new file mode 100644
index 0000000..7a7a120
--- /dev/null
+++ b/src/main/Plugins/ValidationPlugins/Dns/Script/ScriptOptionsFactory.cs
@@ -0,0 +1,53 @@
+using PKISharp.WACS.DomainObjects;
+using PKISharp.WACS.Extensions;
+using PKISharp.WACS.Plugins.Base.Factories;
+using PKISharp.WACS.Services;
+using System;
+
+namespace PKISharp.WACS.Plugins.ValidationPlugins.Dns
+{
+ internal class ScriptOptionsFactory : ValidationPluginOptionsFactory<Script, ScriptOptions>
+ {
+ public ScriptOptionsFactory(ILogService log) : base(log, Constants.Dns01ChallengeType) { }
+
+ public override ScriptOptions Aquire(Target target, IOptionsService options, IInputService input, RunLevel runLevel)
+ {
+ var ret = new ScriptOptions();
+ do
+ {
+ ret.CreateScript = options.TryGetOption(options.MainArguments.DnsCreateScript, input, "Path to script that creates DNS records. Parameters passed are the hostname, record name and token");
+ }
+ while (!ret.CreateScript.ValidFile(_log));
+ do
+ {
+ ret.DeleteScript = options.TryGetOption(options.MainArguments.DnsDeleteScript, input, "Path to script that deletes DNS records. Parameters passed are the hostname and record name");
+ }
+ while (!ret.DeleteScript.ValidFile(_log));
+ return ret;
+ }
+
+ public override ScriptOptions Default(Target target, IOptionsService options)
+ {
+ var ret = new ScriptOptions
+ {
+ CreateScript = options.TryGetRequiredOption(nameof(options.MainArguments.DnsCreateScript), options.MainArguments.DnsCreateScript),
+ DeleteScript = options.TryGetRequiredOption(nameof(options.MainArguments.DnsDeleteScript), options.MainArguments.DnsDeleteScript)
+ };
+ if (!ret.CreateScript.ValidFile(_log))
+ {
+ throw new ArgumentException(nameof(options.MainArguments.DnsCreateScript));
+ }
+ if (!ret.DeleteScript.ValidFile(_log))
+ {
+ throw new ArgumentException(nameof(options.MainArguments.DnsDeleteScript));
+ }
+ return ret;
+ }
+
+ public override bool CanValidate(Target target)
+ {
+ return true;
+ }
+ }
+
+}