| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | using UpdateReadmePackageList; |
| |
|
| | |
| | |
| | |
| | const string TableHeaderSeparator = "|---|---|---|"; |
| |
|
| | if (args.Length != 2) |
| | { |
| | Console.WriteLine("Arguments: <path-to-README.md> <path-to-discovery-directory>"); |
| | return 1; |
| | } |
| |
|
| | string readmePath = args[0]; |
| | string discoveryDirectory = args[1]; |
| |
|
| | var readmeLines = File.ReadAllLines(readmePath).ToList(); |
| | int separatorIndex = readmeLines.IndexOf(TableHeaderSeparator); |
| | if (separatorIndex == -1) |
| | { |
| | Console.WriteLine($"Unable to find header separator line in {readmePath}. Aborting."); |
| | return 1; |
| | } |
| |
|
| | var linesBeforeSeparator = readmeLines.Take(separatorIndex); |
| | var linesAfterTable = readmeLines.Skip(separatorIndex).SkipWhile(line => line != ""); |
| |
|
| | var tableEntries = Directory.GetFiles(discoveryDirectory, "*.json") |
| | .Select(PackageTableEntry.Load) |
| | .OrderBy(te => te.PackageName, StringComparer.Ordinal); |
| |
|
| | var newReadmeLines = linesBeforeSeparator |
| | .Append(TableHeaderSeparator) |
| | .Concat(tableEntries.Select(te => te.ToMarkdown())) |
| | .Concat(linesAfterTable) |
| | .ToList(); |
| |
|
| | File.WriteAllLines(readmePath, newReadmeLines); |
| |
|
| | return 0; |
| |
|