Skip to content

Commit a83cc8c

Browse files
azure-sdksima-zhuweshaggard
authored
Sync eng/common directory with azure-sdk-tools for PR 3578 (Azure#18580)
* 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 <[email protected]> * move compare and merge into gerenerate function * Fix on new lines Co-authored-by: sima-zhu <[email protected]> Co-authored-by: Sima Zhu <[email protected]> Co-authored-by: Wes Haggard <[email protected]>
1 parent 422e05b commit a83cc8c

File tree

3 files changed

+55
-40
lines changed

3 files changed

+55
-40
lines changed

eng/common/scripts/Helpers/Metadata-Helpers.ps1

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,23 @@ function GetDocsMsService($packageInfo, $serviceName)
9393
return $service
9494
}
9595

96-
function GenerateDocsMsMetadata($language, $languageDisplayName, $serviceName, $tenantId, $clientId, $clientSecret, $msService)
96+
function compare-and-merge-metadata ($original, $updated) {
97+
$updateMetdata = ($updated.GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value)" }) -join "`r`n"
98+
$updateMetdata += "`r`n"
99+
if (!$original) {
100+
return $updateMetdata
101+
}
102+
$originalTable = ConvertFrom-StringData -StringData $original -Delimiter ":"
103+
foreach ($key in $originalTable.Keys) {
104+
if (!($updated.ContainsKey($key))) {
105+
Write-Warning "New metadata missed the entry: $key. Adding back."
106+
$updateMetdata += "$key`: $($originalTable[$key])`r`n"
107+
}
108+
}
109+
return $updateMetdata
110+
}
111+
112+
function GenerateDocsMsMetadata($originalMetadata, $language, $languageDisplayName, $serviceName, $tenantId, $clientId, $clientSecret, $msService)
97113
{
98114
$langTitle = "Azure $serviceName SDK for $languageDisplayName"
99115
$langDescription = "Reference for Azure $serviceName SDK for $languageDisplayName"
@@ -113,19 +129,20 @@ function GenerateDocsMsMetadata($language, $languageDisplayName, $serviceName, $
113129
$msauthor = $author
114130
}
115131
$date = Get-Date -Format "MM/dd/yyyy"
116-
$header = @"
117-
---
118-
title: $langTitle
119-
description: $langDescription
120-
author: $author
121-
ms.author: $msauthor
122-
ms.date: $date
123-
ms.topic: reference
124-
ms.devlang: $language
125-
ms.service: $msService
126-
---
127-
"@
128-
return $header
132+
133+
$metadataTable = @{
134+
"title"= $langTitle
135+
"description"= $langDescription
136+
"author"= $author
137+
"ms.author"= $msauthor
138+
"ms.data"= $date
139+
"ms.topic"= "reference"
140+
"ms.devlang"= $language
141+
"ms.service"= $msService
142+
}
143+
$updatedMetadata = compare-and-merge-metadata -original $originalMetadata -updated $metadataTable
144+
return "---
145+
$updatedMetadata---`r`n"
129146
}
130147

131148
function ServiceLevelReadmeNameStyle($serviceName) {

eng/common/scripts/Service-Level-Readme-Automation.ps1

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -62,49 +62,46 @@ function create-metadata-table($readmeFolder, $readmeName, $moniker, $msService,
6262
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
6363
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
6464
-msService $msService
65-
Add-Content -Path $readmePath -Value $metadataString
65+
Add-Content -Path $readmePath -Value $metadataString -NoNewline
6666

6767
# Add tables, seperate client and mgmt.
68-
$readmeHeader = "# $langTitle - $moniker"
68+
$readmeHeader = "# Azure $serviceName SDK for $languageDisplayName - $moniker`r`n"
6969
Add-Content -Path $readmePath -Value $readmeHeader
70-
Add-Content -Path $readmePath -Value $content
71-
}
72-
73-
function compare-and-merge-metadata ($original, $updated) {
74-
$originalTable = ConvertFrom-StringData -StringData $original -Delimiter ":"
75-
$updatedTable = ConvertFrom-StringData -StringData $updated -Delimiter ":"
76-
foreach ($key in $originalTable.Keys) {
77-
if (!($updatedTable.ContainsKey($key))) {
78-
Write-Warning "New metadata missed the entry: $key. Adding back."
79-
$updated += "$key`: $($originalTable[$key])`r`n"
80-
}
81-
}
82-
return $updated
70+
Add-Content -Path $readmePath -Value $content -NoNewline
8371
}
8472

8573
# Update the metadata table.
8674
function update-metadata-table($readmeFolder, $readmeName, $serviceName, $msService)
8775
{
8876
$readmePath = Join-Path $readmeFolder -ChildPath $readmeName
8977
$readmeContent = Get-Content -Path $readmePath -Raw
90-
$null = $readmeContent -match "---`n*(?<metadata>(.*`n)*)---`n*(?<content>(.*`n)*)"
91-
$restContent = $Matches["content"]
92-
$orignalMetadata = $Matches["metadata"]
78+
$match = $readmeContent -match "^---\n*(?<metadata>(.*\n?)*?)---\n*(?<content>(.*\n?)*)"
79+
if (!$match) {
80+
# $Language, $LanguageDisplayName are the variables globally defined in Language-Settings.ps1
81+
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
82+
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
83+
-msService $msService
84+
Set-Content -Path $readmePath -Value "$metadataString$readmeContent" -NoNewline
85+
return
86+
}
87+
$restContent = $Matches["content"].trim()
88+
$metadata = $Matches["metadata"].trim()
9389
# $Language, $LanguageDisplayName are the variables globally defined in Language-Settings.ps1
94-
$metadataString = GenerateDocsMsMetadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
90+
$metadataString = GenerateDocsMsMetadata -originalMetadata $metadata -language $Language -languageDisplayName $LanguageDisplayName -serviceName $serviceName `
9591
-tenantId $TenantId -clientId $ClientId -clientSecret $ClientSecret `
9692
-msService $msService
97-
$null = $metadataString -match "---`n*(?<metadata>(.*`n)*)---"
98-
$mergedMetadata = compare-and-merge-metadata -original $orignalMetadata -updated $Matches["metadata"]
99-
Set-Content -Path $readmePath -Value "---`n$mergedMetadata---`n$restContent" -NoNewline
93+
Set-Content -Path $readmePath -Value "$metadataString$restContent" -NoNewline
10094
}
10195

10296
function generate-markdown-table($readmeFolder, $readmeName, $packageInfo, $moniker) {
10397
$tableHeader = "| Reference | Package | Source |`r`n|---|---|---|`r`n"
10498
$tableContent = ""
10599
# Here is the table, the versioned value will
106100
foreach ($pkg in $packageInfo) {
107-
$repositoryLink = $RepositoryUri
101+
$repositoryLink = "$RepositoryUri/$($pkg.Package)"
102+
if (Test-Path "Function:$GetRepositoryLinkFn") {
103+
$repositoryLink = &$GetRepositoryLinkFn -packageInfo $pkg
104+
}
108105
$packageLevelReadme = ""
109106
if (Test-Path "Function:$GetPackageLevelReadmeFn") {
110107
$packageLevelReadme = &$GetPackageLevelReadmeFn -packageMetadata $pkg
@@ -118,7 +115,7 @@ function generate-markdown-table($readmeFolder, $readmeName, $packageInfo, $moni
118115
if ($pkg.PSObject.Members.Name -contains "DirectoryPath") {
119116
$githubLink = "$GithubUri/blob/main/$($pkg.DirectoryPath)"
120117
}
121-
$line = "|$referenceLink|[$($pkg.Package)]($repositoryLink/$($pkg.Package))|[Github]($githubLink)|`r`n"
118+
$line = "|$referenceLink|[$($pkg.Package)]($repositoryLink)|[Github]($githubLink)|`r`n"
122119
$tableContent += $line
123120
}
124121
$readmePath = Join-Path $readmeFolder -ChildPath $readmeName
@@ -140,12 +137,12 @@ function generate-service-level-readme($readmeBaseName, $pathPrefix, $packageInf
140137
$mgmtIndexReadme = "$readmeBaseName-mgmt-index.md"
141138
$clientPackageInfo = $packageInfos.Where({ 'client' -eq $_.Type }) | Sort-Object -Property Package
142139
if ($clientPackageInfo) {
143-
generate-markdown-table -readmeFolder $readmeFolder -readmeName "$clientIndexReadme" -packageInfo $clientPackageInfo -moniker $moniker
140+
generate-markdown-table -readmeFolder $readmeFolder -readmeName $clientIndexReadme -packageInfo $clientPackageInfo -moniker $moniker
144141
}
145142

146143
$mgmtPackageInfo = $packageInfos.Where({ 'mgmt' -eq $_.Type }) | Sort-Object -Property Package
147144
if ($mgmtPackageInfo) {
148-
generate-markdown-table -readmeFolder $readmeFolder -readmeName "$mgmtIndexReadme" -packageInfo $mgmtPackageInfo -moniker $moniker
145+
generate-markdown-table -readmeFolder $readmeFolder -readmeName $mgmtIndexReadme -packageInfo $mgmtPackageInfo -moniker $moniker
149146
}
150147
if (!(Test-Path (Join-Path $readmeFolder -ChildPath $serviceReadme))) {
151148
create-metadata-table -readmeFolder $readmeFolder -readmeName $serviceReadme -moniker $moniker -msService $msService `

eng/common/scripts/common.ps1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,4 @@ $GetDocsMsTocDataFn = "Get-${Language}-DocsMsTocData"
5555
$GetDocsMsTocChildrenForManagementPackagesFn = "Get-${Language}-DocsMsTocChildrenForManagementPackages"
5656
$UpdateDocsMsTocFn = "Get-${Language}-UpdatedDocsMsToc"
5757
$GetPackageLevelReadmeFn = "Get-${Language}-PackageLevelReadme"
58+
$GetRepositoryLinkFn = "Get-${Language}-RepositoryLink"

0 commit comments

Comments
 (0)