Skip to content

Commit a6eb87c

Browse files
committed
fix: outputFolder path when both output and dest are specified
1 parent 7df2c32 commit a6eb87c

File tree

7 files changed

+15
-20
lines changed

7 files changed

+15
-20
lines changed

src/Docfx.App/Config/BuildJsonConfig.cs

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ internal class BuildJsonConfig
4747
/// Defines the output folder of the generated build files.
4848
/// Command line --output argument prepends this value.
4949
/// </summary>
50+
[Obsolete("Use `Output` property instead. This property will be removed in a future release.")]
5051
[JsonProperty("dest")]
5152
[JsonPropertyName("dest")]
5253
public string Dest { get; set; }

src/Docfx.App/PdfBuilder.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,10 @@ class Outline
4949

5050
public static Task Run(BuildJsonConfig config, string configDirectory, string? outputDirectory = null)
5151
{
52-
var outputFolder = Path.GetFullPath(Path.Combine(
53-
string.IsNullOrEmpty(outputDirectory) ? Path.Combine(configDirectory, config.Output ?? "") : outputDirectory,
54-
config.Dest ?? ""));
52+
var outputFolder = Path.GetFullPath(
53+
string.IsNullOrEmpty(outputDirectory)
54+
? Path.Combine(configDirectory, config.Output ?? config.Dest ?? "")
55+
: outputDirectory);
5556

5657
Logger.LogInfo($"Searching for manifest in {outputFolder}");
5758
return CreatePdf(outputFolder);

src/Docfx.App/RunBuild.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,17 @@ public static string Exec(BuildJsonConfig config, BuildOptions options, string c
2525
}
2626

2727
var baseDirectory = Path.GetFullPath(string.IsNullOrEmpty(configDirectory) ? Directory.GetCurrentDirectory() : configDirectory);
28-
var outputFolder = Path.GetFullPath(Path.Combine(
29-
string.IsNullOrEmpty(outputDirectory) ? Path.Combine(baseDirectory, config.Output ?? "") : outputDirectory,
30-
config.Dest ?? ""));
28+
var outputFolder = Path.GetFullPath(
29+
string.IsNullOrEmpty(outputDirectory)
30+
? Path.Combine(baseDirectory, config.Output ?? config.Dest ?? "")
31+
: outputDirectory);
3132

3233
EnvironmentContext.SetGitFeaturesDisabled(config.DisableGitFeatures);
3334
EnvironmentContext.SetBaseDirectory(baseDirectory);
3435

3536
try
3637
{
37-
var templateManager = new TemplateManager(config.Template, config.Theme, configDirectory);
38+
var templateManager = new TemplateManager(config.Template, config.Theme, baseDirectory);
3839

3940
DocumentBuilderWrapper.BuildDocument(config, options, templateManager, baseDirectory, outputFolder, null);
4041

src/Docfx.Dotnet/DotnetApiCatalog.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,10 @@ private static ExtractMetadataConfig ConvertConfig(MetadataJsonItemConfig config
141141
var projects = configModel.Src;
142142
var references = configModel.References;
143143

144-
var outputFolder = Path.GetFullPath(Path.Combine(
145-
string.IsNullOrEmpty(outputDirectory) ? Path.Combine(configDirectory, configModel.Output ?? "") : outputDirectory,
146-
configModel.Dest ?? ""));
144+
var outputFolder = Path.GetFullPath(
145+
string.IsNullOrEmpty(outputDirectory)
146+
? Path.Combine(configDirectory, configModel.Output ?? configModel.Dest ?? "")
147+
: outputDirectory);
147148

148149
var expandedFiles = GlobUtility.ExpandFileMapping(EnvironmentContext.BaseDirectory, projects);
149150
var expandedReferences = GlobUtility.ExpandFileMapping(EnvironmentContext.BaseDirectory, references);

src/Docfx.Dotnet/MetadataJsonConfig.cs

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ internal class MetadataJsonItemConfig
113113
/// Defines the output folder of the generated metadata files.
114114
/// Command line --output argument prepends this value.
115115
/// </summary>
116+
[Obsolete("Use `Output` property instead. This property will be removed in a future release.")]
116117
[JsonProperty("dest")]
117118
[JsonPropertyName("dest")]
118119
public string Dest { get; set; }

src/docfx/Models/BuildCommand.cs

-5
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ public override int Execute(CommandContext context, BuildCommandOptions settings
3131

3232
internal static void MergeOptionsToConfig(BuildCommandOptions options, BuildJsonConfig config, string configDirectory)
3333
{
34-
// base directory for content from command line is current directory
35-
// e.g. C:\folder1>docfx build folder2\docfx.json --content "*.cs"
36-
// for `--content "*.cs*`, base directory should be `C:\folder1`
37-
string optionsBaseDirectory = Directory.GetCurrentDirectory();
38-
3934
// Override config file with options from command line
4035
if (options.Templates != null && options.Templates.Any())
4136
{

src/docfx/Models/MergeCommand.cs

-5
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ private static MergeJsonConfig ParseOptions(MergeCommandOptions options, out str
3333

3434
private static void MergeOptionsToConfig(MergeCommandOptions options, ref MergeJsonItemConfig config)
3535
{
36-
// base directory for content from command line is current directory
37-
// e.g. C:\folder1>docfx build folder2\docfx.json --content "*.cs"
38-
// for `--content "*.cs*`, base directory should be `C:\folder1`
39-
string optionsBaseDirectory = Directory.GetCurrentDirectory();
40-
4136
if (!string.IsNullOrEmpty(options.OutputFolder)) config.Destination = Path.GetFullPath(Path.Combine(options.OutputFolder, config.Destination ?? string.Empty));
4237
}
4338
}

0 commit comments

Comments
 (0)