pkg/cmd/token.go (37 lines of code) (raw):
package cmd
import (
"context"
"os"
"os/signal"
"github.com/Azure/kubelogin/pkg/internal/token"
"github.com/spf13/cobra"
)
// newTokenCmd provides a cobra command for convert sub command
func newTokenCmd() *cobra.Command {
o := token.NewOptions(true)
cmd := &cobra.Command{
Use: "get-token",
Short: "get AAD token",
SilenceUsage: true,
RunE: func(c *cobra.Command, args []string) error {
o.UpdateFromEnv()
ctx := context.Background()
ctx, cancel := signal.NotifyContext(ctx, os.Interrupt)
defer cancel()
if err := o.Validate(); err != nil {
return err
}
plugin, err := token.New(&o)
if err != nil {
return err
}
if err := plugin.Do(ctx); err != nil {
return err
}
return nil
},
ValidArgsFunction: cobra.NoFileCompletions,
}
o.AddFlags(cmd.Flags())
o.AddCompletions(cmd)
return cmd
}