github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/cli/commands/login/new.go (about)

     1  package login
     2  
     3  import (
     4  	loginFlags "github.com/taubyte/tau-cli/flags/login"
     5  	loginI18n "github.com/taubyte/tau-cli/i18n/login"
     6  	loginLib "github.com/taubyte/tau-cli/lib/login"
     7  	"github.com/taubyte/tau-cli/prompts"
     8  	loginPrompts "github.com/taubyte/tau-cli/prompts/login"
     9  	"github.com/urfave/cli/v2"
    10  )
    11  
    12  func New(ctx *cli.Context, options []string) error {
    13  	name := prompts.GetOrRequireAName(ctx, loginPrompts.ProfileName)
    14  
    15  	var setDefault bool
    16  	if len(options) > 0 {
    17  		setDefault = prompts.GetOrAskForBool(ctx, loginFlags.SetDefault.Name, loginPrompts.UseAsDefault)
    18  	} else {
    19  		setDefault = true
    20  	}
    21  
    22  	provider, token, err := loginPrompts.GetOrRequireAProviderAndToken(ctx)
    23  	if err != nil {
    24  		return err // Already verbose
    25  	}
    26  
    27  	err = loginLib.New(name, provider, token, setDefault)
    28  	if err != nil {
    29  		return loginI18n.CreateFailed(name, err)
    30  	}
    31  
    32  	if setDefault {
    33  		loginI18n.CreatedDefault(name)
    34  	} else {
    35  		loginI18n.Created(name)
    36  	}
    37  
    38  	return Select(ctx, name, false)
    39  }