| // Copyright 2019 The Fuchsia 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 checkout |
| |
| import ( |
| "net/url" |
| "os" |
| |
| buildbucketpb "go.chromium.org/luci/buildbucket/proto" |
| "go.fuchsia.dev/infra/cmd/build_init/execution" |
| ) |
| |
| // Checkout checks out the git repo at repoURL according to the given build input. |
| func Checkout(input buildbucketpb.Build_Input, repoURL url.URL, specRef string) error { |
| strat, err := newStrategy(input, repoURL, specRef) |
| if err != nil { |
| return err |
| } |
| // Write everything to stderr. When this becomes the first subcommand to run under |
| // LUCI, writing to stdout would interfere with build.proto output. |
| executor := execution.NewExecutor(os.Stderr, os.Stderr) |
| if err := strat.Checkout(executor); err != nil { |
| return err |
| } |
| return nil |
| } |