| //go:build ignore |
| // +build ignore |
| |
| package main |
| |
| import ( |
| "fmt" |
| "os" |
| "path/filepath" |
| "sort" |
| "strings" |
| |
| "go.skia.org/infra/go/depot_tools/deps_parser" |
| "go.skia.org/infra/go/sklog" |
| ) |
| |
| const ( |
| targetFile = "deps_gen.go" |
| header = `// Code generated by "go run generate.go"; DO NOT EDIT |
| |
| package deps |
| |
| import ( |
| "go.skia.org/infra/go/depot_tools/deps_parser" |
| ) |
| |
| var deps = deps_parser.DepsEntries{` |
| |
| entryTmpl = ` "%s": { |
| Id: "%s", |
| Version: "%s", |
| Path: "%s", |
| },` |
| footer = `} |
| ` |
| ) |
| |
| func main() { |
| cwd, err := os.Getwd() |
| if err != nil { |
| sklog.Fatal(err) |
| } |
| depsContents, err := os.ReadFile(filepath.Join(cwd, "..", "..", "..", "DEPS")) |
| if err != nil { |
| sklog.Fatal(err) |
| } |
| entries, err := deps_parser.ParseDeps(string(depsContents)) |
| if err != nil { |
| sklog.Fatal(err) |
| } |
| ids := make([]string, 0, len(entries)) |
| for id := range entries { |
| ids = append(ids, id) |
| } |
| sort.Strings(ids) |
| |
| parts := []string{header} |
| for _, id := range ids { |
| entry := entries[id] |
| parts = append(parts, fmt.Sprintf(entryTmpl, entry.Id, entry.Id, entry.Version, entry.Path)) |
| } |
| parts = append(parts, footer) |
| |
| targetContents := strings.Join(parts, "\n") |
| if err := os.WriteFile(targetFile, []byte(targetContents), os.ModePerm); err != nil { |
| sklog.Fatal(err) |
| } |
| } |