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

     1  package loginLib
     2  
     3  import (
     4  	"github.com/pterm/pterm"
     5  	loginI18n "github.com/taubyte/tau-cli/i18n/login"
     6  	"github.com/taubyte/tau-cli/singletons/config"
     7  )
     8  
     9  func New(name, provider, token string, setDefault bool) error {
    10  	profiles := config.Profiles()
    11  	_profiles := profiles.List(true)
    12  
    13  	// Remove current default:
    14  	for _name, profile := range _profiles {
    15  		if profile.Default {
    16  			profile.Default = false
    17  
    18  			err := profiles.Set(_name, profile)
    19  			if err != nil {
    20  				return loginI18n.RemovingDefaultFailed(err)
    21  			}
    22  		}
    23  	}
    24  
    25  	gitName, gitEmail, err := extractInfo(token, provider)
    26  	if err != nil {
    27  		pterm.Warning.Println(loginI18n.GitNameOrEmailFailed(err))
    28  	}
    29  
    30  	return profiles.Set(name, config.Profile{
    31  		Provider:    provider,
    32  		Token:       token,
    33  		Default:     setDefault,
    34  		GitUsername: gitName,
    35  		GitEmail:    gitEmail,
    36  	})
    37  }