func main()

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!")
}