agc93
9/27/2017 - 12:13 AM

An experimental alternative approach to the Cake Downlink plugin intended to be more generalised

An experimental alternative approach to the Cake Downlink plugin intended to be more generalised

public bool Match(Path path, VersionSpec version)
        {
            var platform = GetPlatform(version);
            _logger.LogTrace("Invoking Cake matcher for '{0}' (inferred '{1}' platform); matching against '{2}'", version.Summary, platform, path.ToString());
            var name = path.GetFilenameWithoutExtension();
            return name.Contains($"Cake-{platform}") && name.Contains($"-{version}");
        }

        private string GetPlatform(VersionSpec version) {
            var minor = int.Parse(version.ToString().TrimStart('v').Split('.')[1]);
            if (minor > 16 && version.Platform == "any") {
                // defaults to .NET Framework
                return $"bin-net4";
            }
            return version.Platform == "any"
            ? "bin" // pre 0.16.0 any is fine
            : $"bin-{version.Platform}"; // post 0.16.0 with explicit platform
        }