1$CARGO_ABOUT_VERSION="0.8"
 2$outputFile=$args[0] ? $args[0] : "$(Get-Location)/assets/licenses.md"
 3$templateFile="script/licenses/template.md.hbs"
 4
 5New-Item -Path "$outputFile" -ItemType File -Value "" -Force
 6
 7@(
 8    "# ###### THEME LICENSES ######\n"
 9    Get-Content assets/themes/LICENSES
10    "\n# ###### ICON LICENSES ######\n"
11    Get-Content assets/icons/LICENSES
12    "\n# ###### CODE LICENSES ######\n"
13) | Add-Content -Path $outputFile
14
15$versionOutput = cargo about --version
16if (-not ($versionOutput -match "cargo-about $CARGO_ABOUT_VERSION")) {
17    Write-Host "Installing cargo-about@^$CARGO_ABOUT_VERSION..."
18    cargo install "cargo-about@^$CARGO_ABOUT_VERSION"
19} else {
20    Write-Host "cargo-about@^$CARGO_ABOUT_VERSION" is already installed
21}
22
23Write-Host "Generating cargo licenses"
24
25$failFlag = $env:ALLOW_MISSING_LICENSES ? "--fail" : ""
26$args = @('about', 'generate', $failFlag, '-c', 'script/licenses/zed-licenses.toml', $templateFile, '-o', $outputFile) | Where-Object { $_ }
27cargo @args
28
29Write-Host "Applying replacements"
30$replacements = @{
31    '"' = '"'
32    ''' = "'"
33    '=' = '='
34    '`' = '`'
35    '<'   = '<'
36    '>'   = '>'
37}
38$content = Get-Content $outputFile
39foreach ($find in $replacements.keys) {
40    $content = $content -replace $find, $replacements[$find]
41}
42$content | Set-Content $outputFile
43
44Write-Host "generate-licenses completed. See $outputFile"