go.fuchsia.dev/infra@v0.0.0-20240507153436-9b593402251b/cmd/lkg/main.go (about) 1 // Copyright 2020 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package main 6 7 import ( 8 "log" 9 "os" 10 11 "github.com/maruel/subcommands" 12 13 "go.chromium.org/luci/auth" 14 "go.chromium.org/luci/auth/client/authcli" 15 "go.chromium.org/luci/client/versioncli" 16 "go.chromium.org/luci/hardcoded/chromeinfra" 17 ) 18 19 // Version must be updated on functional change (behavior, arguments, supported commands). 20 const version = "0.0.1" 21 22 func getApplication(defaultAuthOpts auth.Options) *subcommands.DefaultApplication { 23 return &subcommands.DefaultApplication{ 24 Name: "lkg", 25 Title: "Tool to query a variety of last-known-good entities.", 26 Commands: []*subcommands.Command{ 27 cmdBuild(defaultAuthOpts), 28 cmdRevision(defaultAuthOpts), 29 authcli.SubcommandInfo(defaultAuthOpts, "whoami", false), 30 authcli.SubcommandLogin(defaultAuthOpts, "login", false), 31 authcli.SubcommandLogout(defaultAuthOpts, "logout", false), 32 versioncli.CmdVersion(version), 33 subcommands.CmdHelp, 34 }, 35 } 36 } 37 38 func main() { 39 log.SetFlags(log.Lmicroseconds) 40 app := getApplication(chromeinfra.DefaultAuthOptions()) 41 os.Exit(subcommands.Run(app, nil)) 42 }