From 01f68f760ba094b6f27ceab2a4f82e6aa418ff40 Mon Sep 17 00:00:00 2001 From: Paul Hebble Date: Sat, 19 Nov 2022 17:31:01 +0000 Subject: [PATCH] Fix Netkan check for Ships/Script spec_version --- Netkan/Validators/InstallValidator.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Netkan/Validators/InstallValidator.cs b/Netkan/Validators/InstallValidator.cs index afcef9ae63..83e9e298bd 100644 --- a/Netkan/Validators/InstallValidator.cs +++ b/Netkan/Validators/InstallValidator.cs @@ -1,4 +1,7 @@ +using System.Linq; + using Newtonsoft.Json.Linq; + using CKAN.Versioning; using CKAN.NetKAN.Model; @@ -30,7 +33,15 @@ public void Validate(Metadata metadata) { throw new Kraken("spec_version v1.25+ required to install to Missions"); } - if (metadata.SpecVersion < v1p29 && install_to.StartsWith("Ships/Script")) + if (metadata.SpecVersion < v1p29 && ( + install_to.StartsWith("Ships/Script") + || install_to.Equals("Ships") && ( + // find: .../Script, install_to: Ships + ((string)stanza["find"])?.Split(new char[] {'/'})?.LastOrDefault() == "Script" + // file: .../Script, install_to: Ships + || ((string)stanza["file"])?.Split(new char[] {'/'})?.LastOrDefault() == "Script" + // install_to: Ships, as: Script + || (((string)stanza["as"])?.EndsWith("Script") ?? false)))) { throw new Kraken("spec_version v1.29+ required to install to Ships/Script"); }