Skip to content

Commit 90c78e1

Browse files
authored
feat: add ReplaceReadmeNewClientName function (Azure#22165)
* feat: add ReplaceReadmeNewClientName function * fix
1 parent babccdd commit 90c78e1

File tree

4 files changed

+44
-6
lines changed

4 files changed

+44
-6
lines changed

eng/tools/generator/autorest/model/changelog.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func getNewContents(c *delta.Content) []string {
171171
}
172172

173173
if len(c.Funcs) > 0 {
174-
for _, k := range sortFuncItem(c.Funcs) {
174+
for _, k := range SortFuncItem(c.Funcs) {
175175
v := c.Funcs[k]
176176
params := ""
177177
if v.Params != nil {
@@ -262,7 +262,7 @@ func getSignatureChangeItems(b *report.BreakingChanges) []string {
262262
}
263263
// write function changes
264264
if len(b.Funcs) > 0 {
265-
for _, k := range sortFuncItem(b.Funcs) {
265+
for _, k := range SortFuncItem(b.Funcs) {
266266
v := b.Funcs[k]
267267
if v.Params != nil {
268268
line := fmt.Sprintf("Function `%s` parameter(s) have been changed from `(%s)` to `(%s)`", k, v.Params.From, v.Params.To)
@@ -324,7 +324,7 @@ func getRemovedContent(removed *delta.Content) []string {
324324
if len(removed.Funcs) > 0 {
325325
var lroItem []string
326326
var paginationItem []string
327-
for _, k := range sortFuncItem(removed.Funcs) {
327+
for _, k := range SortFuncItem(removed.Funcs) {
328328
v := removed.Funcs[k]
329329
if v.ReplacedBy != nil {
330330
var line string
@@ -405,7 +405,7 @@ func sortChangeItem[T sortItem](change map[string]T) []string {
405405
return s
406406
}
407407

408-
func sortFuncItem[T delta.FuncSig | exports.Func](change map[string]T) []string {
408+
func SortFuncItem[T delta.FuncSig | exports.Func](change map[string]T) []string {
409409
s := make([]string, 0, len(change))
410410
for k := range change {
411411
s = append(s, k)

eng/tools/generator/autorest/model/changelog_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestSortFuncItem(t *testing.T) {
3737
},
3838
}
3939

40-
sortResult := sortFuncItem(s)
40+
sortResult := SortFuncItem(s)
4141
expected := []string{
4242
"NewPrivateEndpointConnectionsClient",
4343
"*PrivateEndpointConnectionsClient.BeginCreate",

eng/tools/generator/cmd/v2/common/fileProcessor.go

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,8 @@ func AddChangelogToFile(changelog *model.Changelog, version *semver.Version, pac
385385
func ReplaceNewClientNamePlaceholder(packageRootPath string, exports exports.Content) error {
386386
path := filepath.Join(packageRootPath, "README.md")
387387
var clientName string
388-
for k, v := range exports.Funcs {
388+
for _, k := range model.SortFuncItem(exports.Funcs) {
389+
v := exports.Funcs[k]
389390
if newClientMethodNameRegex.MatchString(k) && *v.Params == "string, azcore.TokenCredential, *arm.ClientOptions" {
390391
clientName = k
391392
break
@@ -629,3 +630,35 @@ func replaceReadmeModule(path, rpName, namespaceName, currentVersion string) err
629630

630631
return nil
631632
}
633+
634+
func ReplaceReadmeNewClientName(packageRootPath string, exports exports.Content) error {
635+
path := filepath.Join(packageRootPath, "README.md")
636+
var clientName string
637+
for _, k := range model.SortFuncItem(exports.Funcs) {
638+
v := exports.Funcs[k]
639+
if newClientMethodNameRegex.MatchString(k) && *v.Params == "string, azcore.TokenCredential, *arm.ClientOptions" {
640+
clientName = k
641+
break
642+
}
643+
}
644+
645+
b, err := os.ReadFile(path)
646+
if err != nil {
647+
return fmt.Errorf("cannot read from file '%s': %+v", path, err)
648+
}
649+
650+
oldClientName := ""
651+
for _, v := range strings.Split(string(b), "\n") {
652+
oldClientName = regexp.MustCompile(`New.*Client\(\)`).FindString(v)
653+
if oldClientName != "" {
654+
break
655+
}
656+
}
657+
658+
if oldClientName == fmt.Sprintf("%s()", clientName) {
659+
return nil
660+
}
661+
662+
var content = strings.ReplaceAll(string(b), oldClientName, fmt.Sprintf("%s()", clientName))
663+
return os.WriteFile(path, []byte(content), 0644)
664+
}

eng/tools/generator/cmd/v2/common/generation.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,11 @@ func (ctx *GenerateContext) GenerateForSingleRPNamespace(generateParam *Generate
333333
return nil, err
334334
}
335335

336+
log.Printf("Replace README.md NewClient name...")
337+
if err = ReplaceReadmeNewClientName(packagePath, newExports); err != nil {
338+
return nil, err
339+
}
340+
336341
// Example generation should be the last step because the package import relay on the new calculated version
337342
if !generateParam.SkipGenerateExample {
338343
log.Printf("Generate examples...")

0 commit comments

Comments
 (0)