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