From 089811e793ae96934f1328e4f4149bb4637b9cab Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 26 Aug 2025 11:14:17 -0700 Subject: [PATCH] Check duplicated login name in interact mode when creating new login --- modules/interact/login.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/interact/login.go b/modules/interact/login.go index 95e1729..58b9002 100644 --- a/modules/interact/login.go +++ b/modules/interact/login.go @@ -13,6 +13,7 @@ import ( "code.gitea.io/sdk/gitea" "code.gitea.io/tea/modules/auth" + "code.gitea.io/tea/modules/config" "code.gitea.io/tea/modules/task" "code.gitea.io/tea/modules/theme" @@ -57,14 +58,32 @@ func CreateLogin() error { return err } + validateFunc := func(s string) error { + if err := huh.ValidateNotEmpty()(s); err != nil { + return err + } + + logins, err := config.GetLogins() + if err != nil { + return err + } + for _, login := range logins { + if login.Name == name { + return fmt.Errorf("Login with name '%s' already exists", name) + } + } + return nil + } + if err := huh.NewInput(). Title("Name of new Login: "). Value(&name). - Validate(huh.ValidateNotEmpty()). + Validate(validateFunc). WithTheme(theme.GetTheme()). Run(); err != nil { return err } + printTitleAndContent("Name of new Login: ", name) loginMethod, err := promptSelectV2("Login with: ", []string{"token", "ssh-key/certificate", "oauth"})