blob: d95b1fec272902afa9c08bfbdcd4df362ce18bf6 [file] [log] [blame]
// Copyright 2018 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 main
import (
"fmt"
"strings"
"go.fuchsia.dev/jiri"
"go.fuchsia.dev/jiri/cipd"
"go.fuchsia.dev/jiri/cmdline"
)
var cmdBootstrap = &cmdline.Command{
Runner: cmdline.RunnerFunc(runBootstrap),
Name: "bootstrap",
Short: "Bootstrap essential packages",
Long: `
Bootstrap essential packages such as cipd.
`,
ArgsName: "<package ...>",
ArgsLong: "<package ...> is a list of packages that can be bootstrapped by jiri. If the list is empty, jiri will list supported packages.",
}
func runBootstrap(env *cmdline.Env, args []string) error {
if len(args) == 0 {
// Currently it only supports cipd. We may add more packages from buildtools in the future.
fmt.Printf("Supported package(s):\n\tcipd\n")
return nil
}
for _, v := range args {
switch strings.ToLower(v) {
case "cipd":
jirix, err := jiri.NewX(env)
if err != nil {
return err
}
cipdPath, err := cipd.Bootstrap(jirix, jirix.CIPDPath())
if err != nil {
return err
}
fmt.Printf("cipd bootstrapped to path:%q\n", cipdPath)
default:
return fmt.Errorf("unsupported package %q", v)
}
}
return nil
}