예제 #1
0
 public static IEnumerable <string> Find(string addinsBaseDir)
 {
     return(Directory
            .EnumerateDirectories(addinsBaseDir, "Cake.Tasks.*", SearchOption.TopDirectoryOnly)
            .Select(dir =>
     {
         Match versionMatch = VersionPattern.Match(dir);
         return (path: dir,
                 name: dir.Substring(0, versionMatch.Index - 1),
                 version: SemVersion.Parse(versionMatch.Value));
     })
            .ToLookup(addin => addin.name)
            .Select(addinSet => addinSet.OrderByDescending(addin => addin.version).First().path));
 }
예제 #2
0
        public static TsVersionSigned?TryParse(string version, string platform, string sign)
        {
            var match = VersionPattern.Match(version);

            if (!match.Success)
            {
                return(null);
            }
            if (!ulong.TryParse(match.Groups[2].Value, out var build))
            {
                return(null);
            }
            var prelim = new TsVersionSigned(version, platform, build, sign);

            if (!prelim.CheckValid())
            {
                return(null);
            }
            return(prelim);
        }