in tools/migration/convert_crosstool_to_starlark.go [58:101]
func main() {
flag.Parse()
if *crosstoolLocation == "" {
log.Fatalf("Missing mandatory argument 'crosstool'")
}
crosstoolPath, err := toAbsolutePath(*crosstoolLocation)
if err != nil {
log.Fatalf("Error while resolving CROSSTOOL location:", err)
}
if *outputLocation == "" {
log.Fatalf("Missing mandatory argument 'output_location'")
}
outputPath, err := toAbsolutePath(*outputLocation)
if err != nil {
log.Fatalf("Error resolving output location:", err)
}
in, err := ioutil.ReadFile(crosstoolPath)
if err != nil {
log.Fatalf("Error reading CROSSTOOL file:", err)
}
crosstool := &crosstoolpb.CrosstoolRelease{}
if err := proto.UnmarshalText(string(in), crosstool); err != nil {
log.Fatalf("Failed to parse CROSSTOOL:", err)
}
file, err := os.Create(outputPath)
if err != nil {
log.Fatalf("Error creating output file:", err)
}
defer file.Close()
rule, err := crosstooltostarlarklib.Transform(crosstool)
if err != nil {
log.Fatalf("Error converting CROSSTOOL to a Starlark rule:", err)
}
if _, err := file.WriteString(rule); err != nil {
log.Fatalf("Error converting CROSSTOOL to a Starlark rule:", err)
}
fmt.Println("Success!")
}