mirror of
https://github.com/rancher/norman.git
synced 2025-10-21 00:50:46 +00:00
Generator and build cleanup
This commit is contained in:
31
generator/cleanup/cleanup.go
Normal file
31
generator/cleanup/cleanup.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package cleanup
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func Cleanup(path string) error {
|
||||
return filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
|
||||
fmt.Println(path)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if strings.Contains(path, "vendor") {
|
||||
return filepath.SkipDir
|
||||
}
|
||||
|
||||
if strings.HasPrefix(info.Name(), "zz_generated") {
|
||||
fmt.Println("Removing", path)
|
||||
if err := os.Remove(path); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
46
generator/default.go
Normal file
46
generator/default.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package generator
|
||||
|
||||
import (
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/rancher/norman/types"
|
||||
)
|
||||
|
||||
var (
|
||||
baseCattle = "client"
|
||||
baseK8s = "apis"
|
||||
)
|
||||
|
||||
func DefaultGenerate(schemas *types.Schemas, pkgPath string, publicAPI bool, backendTypes map[string]bool) error {
|
||||
version := getVersion(schemas)
|
||||
group := strings.Split(version.Group, ".")[0]
|
||||
|
||||
cattleOutputPackage := path.Join(pkgPath, baseCattle, group, version.Version)
|
||||
if !publicAPI {
|
||||
cattleOutputPackage = ""
|
||||
}
|
||||
k8sOutputPackage := path.Join(pkgPath, baseK8s, version.Group, version.Version)
|
||||
|
||||
if err := Generate(schemas, backendTypes, cattleOutputPackage, k8sOutputPackage); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func getVersion(schemas *types.Schemas) *types.APIVersion {
|
||||
var version types.APIVersion
|
||||
for _, schema := range schemas.Schemas() {
|
||||
if version.Group == "" {
|
||||
version = schema.Version
|
||||
continue
|
||||
}
|
||||
if version.Group != schema.Version.Group ||
|
||||
version.Version != schema.Version.Version {
|
||||
panic("schema set contains two APIVersions")
|
||||
}
|
||||
}
|
||||
|
||||
return &version
|
||||
}
|
@@ -366,13 +366,17 @@ func Generate(schemas *types.Schemas, backendTypes map[string]bool, cattleOutput
|
||||
cattleDir := path.Join(baseDir, cattleOutputPackage)
|
||||
k8sDir := path.Join(baseDir, k8sOutputPackage)
|
||||
|
||||
if cattleOutputPackage == "" {
|
||||
cattleDir = ""
|
||||
}
|
||||
|
||||
if err := prepareDirs(cattleDir, k8sDir); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
controllers := []*types.Schema{}
|
||||
var controllers []*types.Schema
|
||||
|
||||
cattleClientTypes := []*types.Schema{}
|
||||
var cattleClientTypes []*types.Schema
|
||||
for _, schema := range schemas.Schemas() {
|
||||
if blackListTypes[schema.ID] {
|
||||
continue
|
||||
@@ -380,8 +384,10 @@ func Generate(schemas *types.Schemas, backendTypes map[string]bool, cattleOutput
|
||||
|
||||
_, backendType := backendTypes[schema.ID]
|
||||
|
||||
if err := generateType(cattleDir, schema, schemas); err != nil {
|
||||
return err
|
||||
if cattleDir != "" {
|
||||
if err := generateType(cattleDir, schema, schemas); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if backendType ||
|
||||
@@ -402,8 +408,10 @@ func Generate(schemas *types.Schemas, backendTypes map[string]bool, cattleOutput
|
||||
}
|
||||
}
|
||||
|
||||
if err := generateClient(cattleDir, cattleClientTypes); err != nil {
|
||||
return err
|
||||
if cattleDir != "" {
|
||||
if err := generateClient(cattleDir, cattleClientTypes); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if len(controllers) > 0 {
|
||||
@@ -424,11 +432,19 @@ func Generate(schemas *types.Schemas, backendTypes map[string]bool, cattleOutput
|
||||
return err
|
||||
}
|
||||
|
||||
return gofmt(baseDir, cattleOutputPackage)
|
||||
if cattleOutputPackage != "" {
|
||||
return gofmt(baseDir, cattleOutputPackage)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func prepareDirs(dirs ...string) error {
|
||||
for _, dir := range dirs {
|
||||
if dir == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
if err := os.MkdirAll(dir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user