Move json conversion as not all altool commands return json

---------

Co-authored-by: freddydk <freddydk@users.noreply.github.com>
This commit is contained in:
Freddy Kristiansen 2024-01-19 11:59:36 +01:00 коммит произвёл GitHub
Родитель d5dad93f0f
Коммит 43027b9a83
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
4 изменённых файлов: 22 добавлений и 7 удалений

Просмотреть файл

@ -12,7 +12,7 @@ function Get-AppJsonFromAppFile {
[Parameter(Mandatory=$true)]
[string] $appFile
)
$appJson = RunAlTool -arguments @('GetPackageManifest', """$appFile""")
$appJson = RunAlTool -arguments @('GetPackageManifest', """$appFile""") | ConvertFrom-Json
if (!($appJson.PSObject.Properties.Name -eq "description")) { Add-Member -InputObject $appJson -MemberType NoteProperty -Name "description" -Value "" }
if (!($appJson.PSObject.Properties.Name -eq "dependencies")) { Add-Member -InputObject $appJson -MemberType NoteProperty -Name "dependencies" -Value @() }
return $appJson

Просмотреть файл

@ -1342,7 +1342,7 @@ function RunAlTool {
else {
$alToolExe = Join-Path $path 'extension/bin/win32/altool.exe'
}
return CmdDo -Command $alToolExe -arguments $arguments -returnValue -silent | ConvertFrom-Json
CmdDo -Command $alToolExe -arguments $arguments -returnValue -silent
}
function GetApplicationDependency( [string] $appFile, [string] $minVersion = "0.0" ) {

Просмотреть файл

@ -81,6 +81,22 @@ Function New-BcNuGetPackage {
$stream.Write($bytes,0,$bytes.Length)
}
function CalcPackageId([string] $packageIdTemplate, [string] $publisher, [string] $name, [string] $id, [string] $version) {
$name = [nuGetFeed]::Normalize($name)
$publisher = [nuGetFeed]::Normalize($publisher)
$packageId = $packageIdTemplate.replace('{id}',$id).replace('{name}',$name).replace('{publisher}',$publisher).replace('{version}',$version)
if ($packageId.Length -ge 100) {
if ($name.Length -gt ($packageId.Length - 99)) {
$name = $name.Substring(0, $name.Length - ($packageId.Length - 99))
}
else {
throw "Package id is too long: $packageId, unable to shorten it"
}
$packageId = $packageIdTemplate.replace('{id}',$id).replace('{name}',$name).replace('{publisher}',$publisher).replace('{version}',$version)
}
return $packageId
}
Write-Host "Create NuGet package"
Write-Host "AppFile:"
Write-Host $appFile
@ -118,7 +134,7 @@ Function New-BcNuGetPackage {
}
}
$appJson = Get-AppJsonFromAppFile -appFile $appFile
$packageId = $packageId.replace('{id}',$appJson.id).replace('{name}',[nuGetFeed]::Normalize($appJson.name)).replace('{publisher}',[nuGetFeed]::Normalize($appJson.publisher)).replace('{version}',$appJson.version.replace('.','-'))
$packageId = CalcPackageId -packageIdTemplate $packageId -publisher $appJson.publisher -name $appJson.name -id $appJson.id -version $appJson.version.replace('.','-')
if ($null -eq $packageVersion) {
$packageVersion = [System.Version]$appJson.version
}
@ -174,7 +190,7 @@ Function New-BcNuGetPackage {
$XmlObjectWriter.WriteStartElement("dependencies")
if ($appJson.PSObject.Properties.Name -eq 'dependencies') {
$appJson.dependencies | ForEach-Object {
$id = $dependencyIdTemplate.replace('{id}',$_.id).replace('{name}',[nuGetFeed]::Normalize($_.name)).replace('{publisher}',[nuGetFeed]::Normalize($_.publisher))
$id = CalcPackageId -packageIdTemplate $dependencyIdTemplate -publisher $_.publisher -name $_.name -id $_.id -version $_.version.replace('.','-')
$XmlObjectWriter.WriteStartElement("dependency")
$XmlObjectWriter.WriteAttributeString("id", $id)
$XmlObjectWriter.WriteAttributeString("version", $_.Version)
@ -195,7 +211,7 @@ Function New-BcNuGetPackage {
}
if ($isIndirectPackage.IsPresent) {
$XmlObjectWriter.WriteStartElement("dependency")
$id = $runtimeDependencyId.replace('{id}',$appJson.id).replace('{name}',[nuGetFeed]::Normalize($appJson.name)).replace('{publisher}',[nuGetFeed]::Normalize($appJson.publisher)).replace('{version}',$appJson.version.replace('.','-'))
$id = CalcPackageId -packageIdTemplate $runtimeDependencyId -publisher $appJson.publisher -name $appJson.name -id $appJson.id -version $appJson.version.replace('.','-')
$XmlObjectWriter.WriteAttributeString("id", $id)
$XmlObjectWriter.WriteAttributeString("version", '1.0.0.0')
$XmlObjectWriter.WriteEndElement()

Просмотреть файл

@ -5,7 +5,6 @@
Publish Business Central NuGet Package to container
.PARAMETER nuGetServerUrl
NuGet Server URL
Default: https://api.nuget.org/v3/index.json
.PARAMETER nuGetToken
NuGet Token for authenticated access to the NuGet Server
If not specified, the NuGet Server is accessed anonymously (and needs to support this)
@ -42,7 +41,7 @@
Function Publish-BcNuGetPackageToContainer {
Param(
[Parameter(Mandatory=$false)]
[string] $nuGetServerUrl = "https://api.nuget.org/v3/index.json",
[string] $nuGetServerUrl = "",
[Parameter(Mandatory=$false)]
[string] $nuGetToken = "",
[Parameter(Mandatory=$true)]