Sync eng/common directory with azure-sdk-tools for PR 3578 (#3819)
* Fixed the common contract. * Fix for current regex * Add new line * Update eng/common/scripts/Service-Level-Readme-Automation.ps1 Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com> * move compare and merge into gerenerate function * Fix on new lines Co-authored-by: sima-zhu <sizhu@microsoft.com> Co-authored-by: Sima Zhu <48036328+sima-zhu@users.noreply.github.com> Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
This commit is contained in:
parent
6d3ecf1082
commit
12f52838c7
@ -93,7 +93,23 @@ function GetDocsMsService($packageInfo, $serviceName)
|
||||
return $service
|
||||
}
|
||||
|
||||
function GenerateDocsMsMetadata($language, $languageDisplayName, $serviceName, $tenantId, $clientId, $clientSecret, $msService)
|
||||
function compare-and-merge-metadata ($original, $updated) {
|
||||
$updateMetdata = ($updated.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`r`n"
|
||||
$updateMetdata += "`r`n"
|
||||
if (!$original) {
|
||||
return $updateMetdata
|
||||
}
|
||||
$originalTable = ConvertFrom-StringData -StringData $original -Delimiter ":"
|
||||
foreach ($key in $originalTable.Keys) {
|
||||
if (!($updated.ContainsKey($key))) {
|
||||
Write-Warning "New metadata missed the entry: $key. Adding back."
|
||||
$updateMetdata += "$key`: $($originalTable[$key])`r`n"
|
||||
}
|
||||
}
|
||||
return $updateMetdata
|
||||
}
|
||||
|
||||
function GenerateDocsMsMetadata($originalMetadata, $language, $languageDisplayName, $serviceName, $tenantId, $clientId, $clientSecret, $msService)
|
||||
{
|
||||
$langTitle = "Azure $serviceName SDK for $languageDisplayName"
|
||||
$langDescription = "Reference for Azure $serviceName SDK for $languageDisplayName"
|
||||
@ -113,19 +129,20 @@ function GenerateDocsMsMetadata($language, $languageDisplayName, $serviceName, $
|
||||
$msauthor = $author
|
||||
}
|
||||
$date = Get-Date -Format "MM/dd/yyyy"
|
||||
$header = @"
|
||||
---
|
||||
title: $langTitle
|
||||
description: $langDescription
|
||||
author: $author
|
||||
ms.author: $msauthor
|
||||
ms.date: $date
|
||||
ms.topic: reference
|
||||
ms.devlang: $language
|
||||
ms.service: $msService
|
||||
---
|
||||
"@
|
||||
return $header
|
||||
|
||||
$metadataTable = @{
|
||||
"title"= $langTitle
|
||||
"description"= $langDescription
|
||||
"author"= $author
|
||||
"ms.author"= $msauthor
|
||||
"ms.data"= $date
|
||||
"ms.topic"= "reference"
|
||||
"ms.devlang"= $language
|
||||
"ms.service"= $msService
|
||||
}
|
||||
$updatedMetadata = compare-and-merge-metadata -original $originalMetadata -updated $metadataTable
|
||||
return "---
|
||||
$updatedMetadata---`r`n"
|
||||
}
|
||||
|
||||
function ServiceLevelReadmeNameStyle($serviceName) {
|
||||
|
||||
@ -62,24 +62,12 @@ function create-metadata-table($readmeFolder, $readmeName, $moniker, $msService,
|
||||
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
|
||||
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
|
||||
-msService $msService
|
||||
Add-Content -Path $readmePath -Value $metadataString
|
||||
Add-Content -Path $readmePath -Value $metadataString -NoNewline
|
||||
|
||||
# Add tables, seperate client and mgmt.
|
||||
$readmeHeader = "# $langTitle - $moniker"
|
||||
$readmeHeader = "# Azure $serviceName SDK for $languageDisplayName - $moniker`r`n"
|
||||
Add-Content -Path $readmePath -Value $readmeHeader
|
||||
Add-Content -Path $readmePath -Value $content
|
||||
}
|
||||
|
||||
function compare-and-merge-metadata ($original, $updated) {
|
||||
$originalTable = ConvertFrom-StringData -StringData $original -Delimiter ":"
|
||||
$updatedTable = ConvertFrom-StringData -StringData $updated -Delimiter ":"
|
||||
foreach ($key in $originalTable.Keys) {
|
||||
if (!($updatedTable.ContainsKey($key))) {
|
||||
Write-Warning "New metadata missed the entry: $key. Adding back."
|
||||
$updated += "$key`: $($originalTable[$key])`r`n"
|
||||
}
|
||||
}
|
||||
return $updated
|
||||
Add-Content -Path $readmePath -Value $content -NoNewline
|
||||
}
|
||||
|
||||
# Update the metadata table.
|
||||
@ -87,16 +75,22 @@ function update-metadata-table($readmeFolder, $readmeName, $serviceName, $msServ
|
||||
{
|
||||
$readmePath = Join-Path $readmeFolder -ChildPath $readmeName
|
||||
$readmeContent = Get-Content -Path $readmePath -Raw
|
||||
$null = $readmeContent -match "---`n*(?<metadata>(.*`n)*)---`n*(?<content>(.*`n)*)"
|
||||
$restContent = $Matches["content"]
|
||||
$orignalMetadata = $Matches["metadata"]
|
||||
$match = $readmeContent -match "^---\n*(?<metadata>(.*\n?)*?)---\n*(?<content>(.*\n?)*)"
|
||||
if (!$match) {
|
||||
# $Language, $LanguageDisplayName are the variables globally defined in Language-Settings.ps1
|
||||
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
|
||||
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
|
||||
-msService $msService
|
||||
Set-Content -Path $readmePath -Value "$metadataString$readmeContent" -NoNewline
|
||||
return
|
||||
}
|
||||
$restContent = $Matches["content"].trim()
|
||||
$metadata = $Matches["metadata"].trim()
|
||||
# $Language, $LanguageDisplayName are the variables globally defined in Language-Settings.ps1
|
||||
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
|
||||
$metadataString = GenerateDocsMsMetadata -originalMetadata $metadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
|
||||
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
|
||||
-msService $msService
|
||||
$null = $metadataString -match "---`n*(?<metadata>(.*`n)*)---"
|
||||
$mergedMetadata = compare-and-merge-metadata -original $orignalMetadata -updated $Matches["metadata"]
|
||||
Set-Content -Path $readmePath -Value "---`n$mergedMetadata---`n$restContent" -NoNewline
|
||||
Set-Content -Path $readmePath -Value "$metadataString$restContent" -NoNewline
|
||||
}
|
||||
|
||||
function generate-markdown-table($readmeFolder, $readmeName, $packageInfo, $moniker) {
|
||||
@ -104,7 +98,10 @@ function generate-markdown-table($readmeFolder, $readmeName, $packageInfo, $moni
|
||||
$tableContent = ""
|
||||
# Here is the table, the versioned value will
|
||||
foreach ($pkg in $packageInfo) {
|
||||
$repositoryLink = $RepositoryUri
|
||||
$repositoryLink = "$RepositoryUri/$($pkg.Package)"
|
||||
if (Test-Path "Function:$GetRepositoryLinkFn") {
|
||||
$repositoryLink = &$GetRepositoryLinkFn -packageInfo $pkg
|
||||
}
|
||||
$packageLevelReadme = ""
|
||||
if (Test-Path "Function:$GetPackageLevelReadmeFn") {
|
||||
$packageLevelReadme = &$GetPackageLevelReadmeFn -packageMetadata $pkg
|
||||
@ -118,7 +115,7 @@ function generate-markdown-table($readmeFolder, $readmeName, $packageInfo, $moni
|
||||
if ($pkg.PSObject.Members.Name -contains "DirectoryPath") {
|
||||
$githubLink = "$GithubUri/blob/main/$($pkg.DirectoryPath)"
|
||||
}
|
||||
$line = "|$referenceLink|[$($pkg.Package)]($repositoryLink/$($pkg.Package))|[Github]($githubLink)|`r`n"
|
||||
$line = "|$referenceLink|[$($pkg.Package)]($repositoryLink)|[Github]($githubLink)|`r`n"
|
||||
$tableContent += $line
|
||||
}
|
||||
$readmePath = Join-Path $readmeFolder -ChildPath $readmeName
|
||||
@ -140,12 +137,12 @@ function generate-service-level-readme($readmeBaseName, $pathPrefix, $packageInf
|
||||
$mgmtIndexReadme = "$readmeBaseName-mgmt-index.md"
|
||||
$clientPackageInfo = $packageInfos.Where({ 'client' -eq $_.Type }) | Sort-Object -Property Package
|
||||
if ($clientPackageInfo) {
|
||||
generate-markdown-table -readmeFolder $readmeFolder -readmeName "$clientIndexReadme" -packageInfo $clientPackageInfo -moniker $moniker
|
||||
generate-markdown-table -readmeFolder $readmeFolder -readmeName $clientIndexReadme -packageInfo $clientPackageInfo -moniker $moniker
|
||||
}
|
||||
|
||||
$mgmtPackageInfo = $packageInfos.Where({ 'mgmt' -eq $_.Type }) | Sort-Object -Property Package
|
||||
if ($mgmtPackageInfo) {
|
||||
generate-markdown-table -readmeFolder $readmeFolder -readmeName "$mgmtIndexReadme" -packageInfo $mgmtPackageInfo -moniker $moniker
|
||||
generate-markdown-table -readmeFolder $readmeFolder -readmeName $mgmtIndexReadme -packageInfo $mgmtPackageInfo -moniker $moniker
|
||||
}
|
||||
if (!(Test-Path (Join-Path $readmeFolder -ChildPath $serviceReadme))) {
|
||||
create-metadata-table -readmeFolder $readmeFolder -readmeName $serviceReadme -moniker $moniker -msService $msService `
|
||||
|
||||
@ -55,3 +55,4 @@ $GetDocsMsTocDataFn = "Get-${Language}-DocsMsTocData"
|
||||
$GetDocsMsTocChildrenForManagementPackagesFn = "Get-${Language}-DocsMsTocChildrenForManagementPackages"
|
||||
$UpdateDocsMsTocFn = "Get-${Language}-UpdatedDocsMsToc"
|
||||
$GetPackageLevelReadmeFn = "Get-${Language}-PackageLevelReadme"
|
||||
$GetRepositoryLinkFn = "Get-${Language}-RepositoryLink"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user