예제 #1
0
        private static void GenerateAtomFeed()
        {
            var packageFiles         = EnumerateFilesSafe(new DirectoryInfo(_dir), "*.vsix", _recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly).Distinct();
            var filteredPackageFiles = string.IsNullOrEmpty(_exclude) ? packageFiles : packageFiles.Where(f => !f.FullName.Contains(_exclude));
            var packagesToProcess    = filteredPackageFiles.Select(f => ProcessVsix(f.FullName));

            if (_latestOnly)
            {
                packagesToProcess = packagesToProcess.GroupBy(p => p.ID).Select(g => g.OrderByDescending(pkg => Version.Parse(pkg.Version)).First());
            }

            var    writer  = new FeedWriter(_galleryName);
            string feedUrl = _outputFile;
            string xml     = writer.GetFeed(feedUrl, packagesToProcess);

            File.WriteAllText(feedUrl, xml, Encoding.UTF8);

            Console.WriteLine();
            Console.WriteLine($"{_outputFile} generated successfully");
        }