blob: 64ef2ae7b445a2fd71fa4f8a49de1d96f9d0341d [file] [log] [blame]
//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)
}
}