Files
AtomUI/scripts/NuGetPackageProjects.ps1
T

76 lines
5.1 KiB
PowerShell

$repositoryRoot = Split-Path -Parent $PSScriptRoot
$AtomUIReleaseBuildPrerequisiteProjects = @(
"src/AtomUI.Build.Tasks/AtomUI.Build.Tasks.csproj",
"src/AtomUI.Generator.LinkedPublish/AtomUI.Generator.LinkedPublish.csproj"
)
$AtomUIReleasePackages = @(
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Native"; ProjectPath = "src/AtomUI.Native/AtomUI.Native.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Localization"; ProjectPath = "src/AtomUI.Localization/AtomUI.Localization.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Core"; ProjectPath = "src/AtomUI.Core/AtomUI.Core.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Fonts.AlibabaSans"; ProjectPath = "src/AtomUI.Fonts.AlibabaSans/AtomUI.Fonts.AlibabaSans.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Controls.Shared"; ProjectPath = "src/AtomUI.Controls.Shared/AtomUI.Controls.Shared.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Controls"; ProjectPath = "src/AtomUI.Controls/AtomUI.Controls.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Desktop.Controls"; ProjectPath = "src/AtomUI.Desktop.Controls/AtomUI.Desktop.Controls.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Toolkits.GalleryBase"; ProjectPath = "src/AtomUI.Toolkits.GalleryBase/AtomUI.Toolkits.GalleryBase.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Generator"; ProjectPath = "src/AtomUI.Generator/AtomUI.Generator.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Icons.Shared"; ProjectPath = "src/AtomUI.Icons.Shared/AtomUI.Icons.Shared.csproj" },
[PSCustomObject]@{ Group = "Base"; PackageId = "AtomUI.Icons.AntDesign"; ProjectPath = "src/AtomUI.Icons.AntDesign/AtomUI.Icons.AntDesign.csproj" },
[PSCustomObject]@{ Group = "Extension"; PackageId = "AtomUI.Desktop.Controls.DataGrid"; ProjectPath = "src/AtomUI.Desktop.Controls.DataGrid/AtomUI.Desktop.Controls.DataGrid.csproj" },
[PSCustomObject]@{ Group = "Extension"; PackageId = "AtomUI.Desktop.Controls.ColorPicker"; ProjectPath = "src/AtomUI.Desktop.Controls.ColorPicker/AtomUI.Desktop.Controls.ColorPicker.csproj" },
[PSCustomObject]@{ Group = "Extension"; PackageId = "AtomUI.Desktop.Controls.Extras"; ProjectPath = "src/AtomUI.Desktop.Controls.Extras/AtomUI.Desktop.Controls.Extras.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.LanguagePack.Template"; ProjectPath = "src/AtomUI.LanguagePack.Template/AtomUI.LanguagePack.Template.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.Controls.I18n.PtBR"; ProjectPath = "src/LanguagePacks/pt-BR/AtomUI.Controls.I18n.PtBR/AtomUI.Controls.I18n.PtBR.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.Desktop.Controls.I18n.PtBR"; ProjectPath = "src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.I18n.PtBR/AtomUI.Desktop.Controls.I18n.PtBR.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.Desktop.Controls.DataGrid.I18n.PtBR"; ProjectPath = "src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.DataGrid.I18n.PtBR/AtomUI.Desktop.Controls.DataGrid.I18n.PtBR.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.Desktop.Controls.ColorPicker.I18n.PtBR"; ProjectPath = "src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.ColorPicker.I18n.PtBR/AtomUI.Desktop.Controls.ColorPicker.I18n.PtBR.csproj" },
[PSCustomObject]@{ Group = "Language"; PackageId = "AtomUI.I18n.PtBR"; ProjectPath = "src/LanguagePacks/pt-BR/AtomUI.I18n.PtBR/AtomUI.I18n.PtBR.csproj" }
)
$duplicatePackageIds = @(
$AtomUIReleasePackages |
Group-Object PackageId |
Where-Object Count -gt 1 |
Select-Object -ExpandProperty Name
)
if ($duplicatePackageIds.Count -gt 0) {
throw "Duplicate NuGet package IDs: $($duplicatePackageIds -join ', ')"
}
foreach ($package in $AtomUIReleasePackages) {
$package.ProjectPath = Join-Path $repositoryRoot $package.ProjectPath
if (-not (Test-Path -LiteralPath $package.ProjectPath -PathType Leaf)) {
throw "NuGet package project does not exist: $($package.ProjectPath)"
}
}
$AtomUIReleaseBuildPrerequisiteProjects = @(
foreach ($project in $AtomUIReleaseBuildPrerequisiteProjects) {
$projectPath = Join-Path $repositoryRoot $project
if (-not (Test-Path -LiteralPath $projectPath -PathType Leaf)) {
throw "NuGet build prerequisite project does not exist: $projectPath"
}
$projectPath
}
)
$AtomUIReleasePackageProjects = @($AtomUIReleasePackages | Select-Object -ExpandProperty ProjectPath)
$AtomUIBasePackageProjects = @(
$AtomUIReleasePackages |
Where-Object Group -eq "Base" |
Select-Object -ExpandProperty ProjectPath
)
$AtomUIExtensionPackageProjects = @(
$AtomUIReleasePackages |
Where-Object Group -eq "Extension" |
Select-Object -ExpandProperty ProjectPath
)
$AtomUILanguagePackageProjects = @(
$AtomUIReleasePackages |
Where-Object Group -eq "Language" |
Select-Object -ExpandProperty ProjectPath
)
$AtomUIExpectedPackageIds = @($AtomUIReleasePackages | Select-Object -ExpandProperty PackageId)