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 }