Skip to content

Commit

Permalink
FIX: Docset Pdf call terminating early (#9493)
Browse files Browse the repository at this point in the history
* add logging around toc search

* fix exec not waiting for async pdf builder
  • Loading branch information
dpvreony authored Dec 1, 2023
1 parent f98776a commit 7e2f5ef
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
15 changes: 9 additions & 6 deletions src/Docfx.App/Docset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ public static Task Build(string configPath)
/// <returns>A task to await for build completion.</returns>
public static Task Build(string configPath, BuildOptions options)
{
return Exec(configPath, (config, configDirectory) => RunBuild.Exec(config.build, options, configDirectory));
return Exec(configPath, (config, configDirectory) =>
{
RunBuild.Exec(config.build, options, configDirectory);
return Task.CompletedTask;
});
}

/// <summary>
Expand All @@ -51,10 +55,10 @@ public static Task Pdf(string configPath)
/// <returns>A task to await for build completion.</returns>
public static Task Pdf(string configPath, BuildOptions options)
{
return Exec(configPath, (config, configDirectory) =>
return Exec(configPath, async (config, configDirectory) =>
{
if (config.build is not null)
PdfBuilder.Run(config.build, configDirectory);
await PdfBuilder.Run(config.build, configDirectory);

if (config.pdf is not null)
RunPdf.Exec(config.pdf, options, configDirectory);
Expand All @@ -79,16 +83,15 @@ internal static (DocfxConfig, string configDirectory) GetConfig(string configFil
}


private static Task Exec(string configPath, Action<DocfxConfig, string> action)
private static async Task Exec(string configPath, Func<DocfxConfig, string, Task> action)
{
var consoleLogListener = new ConsoleLogListener();
Logger.RegisterListener(consoleLogListener);

try
{
var (config, baseDirectory) = GetConfig(configPath);
action(config, baseDirectory);
return Task.CompletedTask;
await action(config, baseDirectory);
}
finally
{
Expand Down
5 changes: 4 additions & 1 deletion src/Docfx.App/PdfBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,19 @@ public static Task Run(BuildJsonConfig config, string configDirectory, string? o
var outputFolder = Path.GetFullPath(Path.Combine(
string.IsNullOrEmpty(outputDirectory) ? Path.Combine(configDirectory, config.Output ?? "") : outputDirectory,
config.Dest ?? ""));

return CreatePdf(outputFolder);
}

public static async Task CreatePdf(string outputFolder)
{
var stopwatch = Stopwatch.StartNew();
Logger.LogInfo($"Searching for manifest in {outputFolder}");
var pdfTocs = GetPdfTocs().ToDictionary(p => p.url, p => p.toc);
if (pdfTocs.Count == 0)
{
Logger.LogWarning($"No PDF TOC's found in: {outputFolder}");
return;
}

Program.Main(new[] { "install", "chromium" });

Expand Down

0 comments on commit 7e2f5ef

Please sign in to comment.