blob: 1015606da6fc215d1dc13a8cb32462ac9d9ae837 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
import (
"flag"
"fmt"
"os"
"path/filepath"
"go.skia.org/infra/go/exec"
"go.skia.org/infra/go/skerr"
"go.skia.org/infra/task_driver/go/td"
)
func main() {
var (
projectId = flag.String("project_id", "", "ID of the Google Cloud project.")
taskId = flag.String("task_id", "", "ID of this task.")
taskName = flag.String("task_name", "", "Name of the task.")
output = flag.String("o", "", "If provided, dump a JSON blob of step data to the given file. Prints to stdout if '-' is given.")
local = flag.Bool("local", true, "True if running locally (as opposed to on the bots)")
skiaCheckoutRoot = flag.String("skia_checkout_root", "./skia", "Path to Skia's checkout.")
)
ctx := td.StartRun(projectId, taskId, taskName, output, local)
defer td.EndRun(ctx)
skiaCheckoutAbsPath := td.MustGetAbsolutePathOfFlag(ctx, *skiaCheckoutRoot, "skia_checkout_root")
binPath := filepath.Join(skiaCheckoutAbsPath, "bin")
// Fetch GN before running gn_to_bp.py
if _, err := exec.RunCwd(ctx, skiaCheckoutAbsPath, filepath.Join(binPath, "fetch-gn")); err != nil {
td.Fatal(ctx, skerr.Wrap(err))
}
// Run gn_to_bp.py
gnEnv := []string{fmt.Sprintf("PATH=%s/:%s", binPath, os.Getenv("PATH"))}
if _, gnToBpErr := exec.RunCommand(ctx, &exec.Command{
Env: gnEnv,
Dir: skiaCheckoutAbsPath,
Name: "python",
Args: []string{"-c", "from gn import gn_to_bp"},
}); gnToBpErr != nil {
td.Fatal(ctx, fmt.Errorf("Failed to run gn_to_bp: %s", gnToBpErr))
}
return
}