From cd024b8870b9bca46921b63ee6d3f93dbd7b863c Mon Sep 17 00:00:00 2001 From: localcc Date: Fri, 11 Jul 2025 19:28:48 +0200 Subject: [PATCH] Add licenses.md for Windows build (#34272) Release Notes: - N/A --- script/bundle-windows.ps1 | 8 +++++++ script/generate-licenses.ps1 | 44 ++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 script/generate-licenses.ps1 diff --git a/script/bundle-windows.ps1 b/script/bundle-windows.ps1 index 81d71699b9..01a1114c26 100644 --- a/script/bundle-windows.ps1 +++ b/script/bundle-windows.ps1 @@ -56,6 +56,13 @@ function PrepareForBundle { New-Item -Path "$innoDir\tools" -ItemType Directory -Force } +function GenerateLicenses { + $oldErrorActionPreference = $ErrorActionPreference + $ErrorActionPreference = 'Continue' + . $PSScriptRoot/generate-licenses.ps1 + $ErrorActionPreference = $oldErrorActionPreference +} + function BuildZedAndItsFriends { Write-Output "Building Zed and its friends, for channel: $channel" # Build zed.exe, cli.exe and auto_update_helper.exe @@ -238,6 +245,7 @@ $innoDir = "$env:ZED_WORKSPACE\inno" CheckEnvironmentVariables PrepareForBundle +GenerateLicenses BuildZedAndItsFriends MakeAppx SignZedAndItsFriends diff --git a/script/generate-licenses.ps1 b/script/generate-licenses.ps1 new file mode 100644 index 0000000000..52a6fe0118 --- /dev/null +++ b/script/generate-licenses.ps1 @@ -0,0 +1,44 @@ +$CARGO_ABOUT_VERSION="0.7" +$outputFile=$args[0] ? $args[0] : "$(Get-Location)/assets/licenses.md" +$templateFile="script/licenses/template.md.hbs" + +New-Item -Path "$outputFile" -ItemType File -Value "" -Force + +@( + "# ###### THEME LICENSES ######\n" + Get-Content assets/themes/LICENSES + "\n# ###### ICON LICENSES ######\n" + Get-Content assets/icons/LICENSES + "\n# ###### CODE LICENSES ######\n" +) | Add-Content -Path $outputFile + +$versionOutput = cargo about --version +if (-not ($versionOutput -match "cargo-about $CARGO_ABOUT_VERSION")) { + Write-Host "Installing cargo-about@^$CARGO_ABOUT_VERSION..." + cargo install "cargo-about@^$CARGO_ABOUT_VERSION" +} else { + Write-Host "cargo-about@^$CARGO_ABOUT_VERSION" is already installed +} + +Write-Host "Generating cargo licenses" + +$failFlag = $env:ALLOW_MISSING_LICENSES ? "--fail" : "" +$args = @('about', 'generate', $failFlag, '-c', 'script/licenses/zed-licenses.toml', $templateFile, '-o', $outputFile) | Where-Object { $_ } +cargo @args + +Write-Host "Applying replacements" +$replacements = @{ + '"' = '"' + ''' = "'" + '=' = '=' + '`' = '`' + '<' = '<' + '>' = '>' +} +$content = Get-Content $outputFile +foreach ($find in $replacements.keys) { + $content = $content -replace $find, $replacements[$find] +} +$content | Set-Content $outputFile + +Write-Host "generate-licenses completed. See $outputFile"