Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(657)

Unified Diff: go/src/infra/libs/auth/cli.go

Issue 1153883002: go: infra/libs/* now live in luci-go. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: move the rest too Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « go/src/infra/libs/auth/auth_test.go ('k') | go/src/infra/libs/auth/internal/common.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: go/src/infra/libs/auth/cli.go
diff --git a/go/src/infra/libs/auth/cli.go b/go/src/infra/libs/auth/cli.go
deleted file mode 100644
index 0b9212299ace3c3ca4a5078b10f1a409c7d4b914..0000000000000000000000000000000000000000
--- a/go/src/infra/libs/auth/cli.go
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright 2015 The Chromium 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 auth
-
-import (
- "flag"
- "fmt"
- "net/http"
- "os"
-
- "github.com/maruel/subcommands"
-)
-
-// Flags defines command line flags related to authentication.
-type Flags struct {
- defaults Options
- serviceAccountJSON string
-}
-
-// Register adds auth related flags to a FlagSet.
-func (fl *Flags) Register(f *flag.FlagSet) {
- f.StringVar(&fl.serviceAccountJSON, "service-account-json", "", "Path to JSON file with service account credentials to use.")
-}
-
-// Options return instance of Options struct with values set accordingly to
-// parsed command line flags.
-func (fl *Flags) Options() (Options, error) {
- opts := fl.defaults
- if fl.serviceAccountJSON != "" {
- opts.Method = ServiceAccountMethod
- opts.ServiceAccountJSONPath = fl.serviceAccountJSON
- }
- return opts, nil
-}
-
-// SubcommandLogin returns subcommands.Command that can be used to perform
-// interactive login.
-func SubcommandLogin(opts Options, name string) *subcommands.Command {
- return &subcommands.Command{
- UsageLine: name,
- ShortDesc: "performs interactive login flow",
- LongDesc: "Performs interactive login flow and caches obtained credentials",
- CommandRun: func() subcommands.CommandRun {
- c := &loginRun{}
- c.flags.defaults = opts
- c.flags.Register(&c.Flags)
- return c
- },
- }
-}
-
-type loginRun struct {
- subcommands.CommandRunBase
- flags Flags
-}
-
-func (c *loginRun) Run(subcommands.Application, []string) int {
- opts, err := c.flags.Options()
- if err != nil {
- fmt.Fprintf(os.Stderr, "%s\n", err.Error())
- return 1
- }
- client, err := AuthenticatedClient(InteractiveLogin, NewAuthenticator(opts))
- if err != nil {
- fmt.Fprintf(os.Stderr, "Login failed: %s\n", err.Error())
- return 2
- }
- err = reportIdentity(client)
- if err != nil {
- return 3
- }
- return 0
-}
-
-// SubcommandLogout returns subcommands.Command that can be used to purge cached
-// credentials.
-func SubcommandLogout(opts Options, name string) *subcommands.Command {
- return &subcommands.Command{
- UsageLine: name,
- ShortDesc: "removes cached credentials",
- LongDesc: "Removes cached credentials from the disk",
- CommandRun: func() subcommands.CommandRun {
- c := &logoutRun{}
- c.flags.defaults = opts
- c.flags.Register(&c.Flags)
- return c
- },
- }
-}
-
-type logoutRun struct {
- subcommands.CommandRunBase
- flags Flags
-}
-
-func (c *logoutRun) Run(a subcommands.Application, args []string) int {
- opts, err := c.flags.Options()
- if err != nil {
- fmt.Fprintf(os.Stderr, "%s\n", err.Error())
- return 1
- }
- err = NewAuthenticator(opts).PurgeCredentialsCache()
- if err != nil {
- fmt.Fprintln(os.Stderr, err)
- return 2
- }
- return 0
-}
-
-// SubcommandInfo returns subcommand.Command that can be used to print current
-// cached credentials.
-func SubcommandInfo(opts Options, name string) *subcommands.Command {
- return &subcommands.Command{
- UsageLine: name,
- ShortDesc: "prints an email address associated with currently cached token",
- LongDesc: "Prints an email address associated with currently cached token",
- CommandRun: func() subcommands.CommandRun {
- c := &infoRun{}
- c.flags.defaults = opts
- c.flags.Register(&c.Flags)
- return c
- },
- }
-}
-
-type infoRun struct {
- subcommands.CommandRunBase
- flags Flags
-}
-
-func (c *infoRun) Run(a subcommands.Application, args []string) int {
- opts, err := c.flags.Options()
- if err != nil {
- fmt.Fprintf(os.Stderr, "%s\n", err.Error())
- return 1
- }
- client, err := AuthenticatedClient(SilentLogin, NewAuthenticator(opts))
- if err == ErrLoginRequired {
- fmt.Fprintln(os.Stderr, "Not logged in")
- return 2
- } else if err != nil {
- fmt.Fprintln(os.Stderr, err)
- return 3
- }
- err = reportIdentity(client)
- if err != nil {
- return 4
- }
- return 0
-}
-
-// reportIdentity prints identity associated with credentials that the client
-// puts into each request (if any).
-func reportIdentity(c *http.Client) error {
- service := NewGroupsService("", c, nil)
- ident, err := service.FetchCallerIdentity()
- if err != nil {
- fmt.Fprintf(os.Stderr, "Failed to fetch current identity: %s\n", err)
- return err
- }
- fmt.Printf("Logged in to %s as %s\n", service.ServiceURL(), ident)
- return nil
-}
« no previous file with comments | « go/src/infra/libs/auth/auth_test.go ('k') | go/src/infra/libs/auth/internal/common.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698