public static bool FromUrl()

in src/shared/ArtifactPackage.cs [32:58]


        public static bool FromUrl(string url, out ArtifactPackage artifactPackage) =>
            FromFilenameOrUrl(Path.GetFileName(url), url, out artifactPackage);

        public static bool FromFilename(string fileName, out ArtifactPackage artifactPackage) =>
            FromFilenameOrUrl(fileName, null, out artifactPackage);

        static readonly Regex rx = new Regex(
            /* 0 full capture, 7 groups total */
            /* 1 */ @$"(?<target>[^-]+({MagicStrings.Files.DashOssSuffix})?)" +
            /* 2 */ @$"-(?<version>\d+\.\d+\.\d+(?:\+build\d+)?)" +
            /* 3 */ @$"(-(?<qualifier>(?!\b(?:{MagicStrings.Ver.Snapshot})\b)[^-]+))?" +
            /* 4 */ @$"(-(?<snapshot>{MagicStrings.Ver.Snapshot}))?" +
            /* 5 */ @$"-(?<os>[^-]+)" +
            /* 6 */ @$"-(?<arch>[^\.]+)",
            RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.IgnoreCase);

        static bool FromFilenameOrUrl(string fileName, string url, out ArtifactPackage artifactPackage)
        {
            artifactPackage = null;

            var rxVersion = rx.Match(fileName);
            if (rxVersion.Groups.Count < 7)
                return false;

            artifactPackage = new ArtifactPackage(rxVersion.Groups, fileName, url);
            return true;
        }