go.fuchsia.dev/infra@v0.0.0-20240507153436-9b593402251b/cmd/ftxtest/main.go (about) 1 // Copyright 2023 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 package main 5 6 import ( 7 "log" 8 "os" 9 10 "github.com/maruel/subcommands" 11 "go.chromium.org/luci/auth" 12 "go.chromium.org/luci/auth/client/authcli" 13 "go.chromium.org/luci/client/versioncli" 14 "go.chromium.org/luci/hardcoded/chromeinfra" 15 ) 16 17 const ( 18 // Version must be updated on functional change (behavior, arguments, supported commands). 19 version = "0.0.1" 20 ) 21 22 func getApplication(defaultAuthOpts auth.Options) *subcommands.DefaultApplication { 23 defaultAuthOpts.Scopes = []string{ 24 "https://www.googleapis.com/auth/cloud-platform", 25 "https://www.googleapis.com/auth/userinfo.email", 26 } 27 return &subcommands.DefaultApplication{ 28 Name: "ftx-test", 29 Title: "Generic test execution for buildbucket.", 30 Commands: []*subcommands.Command{ 31 cmdRun(defaultAuthOpts), 32 authcli.SubcommandInfo(defaultAuthOpts, "whoami", false), 33 authcli.SubcommandLogin(defaultAuthOpts, "login", false), 34 authcli.SubcommandLogout(defaultAuthOpts, "logout", false), 35 versioncli.CmdVersion(version), 36 subcommands.CmdHelp, 37 }, 38 } 39 } 40 41 func main() { 42 log.SetFlags(log.Lmicroseconds) 43 app := getApplication(chromeinfra.DefaultAuthOptions()) 44 os.Exit(subcommands.Run(app, nil)) 45 }