mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-07 01:46:54 +00:00
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
dir, err := os.Getwd()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if len(os.Args) > 1 {
|
|
dir = os.Args[1]
|
|
}
|
|
err = FixNewSchemaValidationCheck(dir)
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, "error getting chart source:", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
// FixNewSchemaValidationCheck temporarily corrects spec.validation.openAPIV3Schema issue, and it would be removed
|
|
// after this issue was fixed https://github.com/oam-dev/kubevela/issues/284.
|
|
func FixNewSchemaValidationCheck(chartPath string) error {
|
|
err := filepath.Walk(chartPath, func(path string, info os.FileInfo, err error) error {
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, "failed to list the content of", path)
|
|
return err
|
|
}
|
|
if info.IsDir() {
|
|
return nil
|
|
}
|
|
|
|
if info.Name() != "standard.oam.dev_podspecworkloads.yaml" {
|
|
return nil
|
|
}
|
|
data, err := ioutil.ReadFile(path)
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, "open path err", path, err)
|
|
return err
|
|
}
|
|
var newdata []string
|
|
var previousLine string
|
|
for _, line := range strings.Split(string(data), "\n") {
|
|
if strings.Contains(previousLine, "protocol:") &&
|
|
strings.Contains(line, "description: Protocol for port. Must be UDP, TCP,") {
|
|
tmp := strings.Split(line, "description")
|
|
|
|
if len(tmp) > 0 {
|
|
blanks := tmp[0]
|
|
defaultStr := blanks + "default: TCP"
|
|
newdata = append(newdata, defaultStr)
|
|
}
|
|
}
|
|
newdata = append(newdata, line)
|
|
previousLine = line
|
|
}
|
|
|
|
return ioutil.WriteFile(path, []byte(strings.Join(newdata, "\n")), info.Mode())
|
|
})
|
|
return err
|
|
}
|