dotNetDocs.ps1

param(
    [Parameter(Mandatory = $false)]
    [String] $Folder = $pwd,
    [Parameter(Mandatory = $false)]
    [String] $Configuration
)
$ErrorActionPreference = "Stop"

Import-Module "$PSScriptRoot\DotNetBuilder.psd1" -DisableNameChecking

$Settings = Get-DotNetBuildSettings -Folder $Folder
$DocFxDocFxConfigurationFile = $Settings.DocFxConfiguration
if (-not $DocFxDocFxConfigurationFile) {
    $DocFxDocFxConfigurationFile = [IO.Path]::Combine($Folder, "docfx\docfx.json")
}

if (-not (Test-Path $DocFxDocFxConfigurationFile)) {
    Write-Host "DocFx configuration file not found. Skipping documentation generation."
    return
}

$DocFxDocFxConfiguration = ConvertFrom-Json (Get-Content -Path $DocFxDocFxConfigurationFile -Raw)

dotnet tool install docfx --global
$callArgs = @(
    "metadata",
    $DocFxDocFxConfigurationFile,
    "--output", $Settings.OutputFolder
)
& docfx.exe @callArgs

$ActualOutput = [IO.Path]::Combine($Settings.OutputFolder, $DocFxDocFxConfiguration.metadata[0].dest)
Write-Host "Actual output folder: $ActualOutput"
Compress-Archive -LiteralPath $ActualOutput -DestinationPath "$($Settings.OutputFolder)\docfx.zip" -Force
Remove-Item $ActualOutput -Recurse -Force