package
0.0.0-20241011162511-0dc2a6a05534
Repository: https://github.com/aws/eks-distro.git
Documentation: pkg.go.dev
# README
package existingdocs
import ( "bytes" "fmt" "os"
"github.com/aws/eks-distro/cmd/release/utils/release"
)
// UpdateREADME updates the README to replace release manifest from previous patch release with the new one. func UpdateREADME(release *release.Release, readmePath string) error { data, err := os.ReadFile(readmePath) if err != nil { return fmt.Errorf("reading README: %w", err) }
// Example:
// ### Kubernetes 1-23
//
// | Release | Manifest | Kubernetes Version |
// | --- | --- | --- |
// | 4 | [1-23-eks-4](https://distro.eks.amazonaws.com/kubernetes-1-23/kubernetes-1-23-eks-4.yaml) | v1.23.9 | <- line to change
expectedLine := []byte("### Kubernetes " + release.Branch())
lineToUpdate := []byte(fmt.Sprintf("| %s | [%s](%s) | [%s](%s) |", release.Number(), release.Tag(), release.ManifestURL(), release.KubernetesGitTag(), release.KubernetesURL()))
numberOfLinesBetweenExpectedLineAndLineToUpdate := 4
splitData := bytes.Split(data, linebreak)
for i := 0; i < len(splitData)-numberOfLinesBetweenExpectedLineAndLineToUpdate; i++ {
if bytes.Equal(expectedLine, splitData[i]) {
splitData[i+numberOfLinesBetweenExpectedLineAndLineToUpdate] = lineToUpdate
return os.WriteFile(readmePath, bytes.Join(splitData, linebreak), 0644)
}
}
return fmt.Errorf("finding line (%q) needed to update version tag in %s", expectedLine, readmePath)
}