From ac77ce7818db725b06d63ad2f849f40f9550f132 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Thu, 1 Oct 2020 23:35:11 +0200 Subject: [PATCH 1/3] Impruve logout --- cmd/logout.go | 35 +++++++++++------------------------ modules/config/login.go | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/cmd/logout.go b/cmd/logout.go index 23e5afe..8880480 100644 --- a/cmd/logout.go +++ b/cmd/logout.go @@ -7,7 +7,6 @@ package cmd import ( "errors" "log" - "os" "code.gitea.io/tea/modules/config" @@ -30,34 +29,22 @@ var CmdLogout = cli.Command{ } func runLogout(ctx *cli.Context) error { - var name string - if len(os.Args) == 3 { - name = os.Args[2] - } else if ctx.IsSet("name") { - name = ctx.String("name") - } else { - return errors.New("Please specify a login name") - } - err := config.LoadConfig() if err != nil { log.Fatal(err) } - var idx = -1 - for i, l := range config.Config.Logins { - if l.Name == name { - idx = i - break - } - } - if idx > -1 { - config.Config.Logins = append(config.Config.Logins[:idx], config.Config.Logins[idx+1:]...) - err = config.SaveConfig() - if err != nil { - log.Fatal(err) - } + var name string + + if ctx.IsSet("name") { + name = ctx.String("name") + } else if len(ctx.Args().First()) != 0 { + name = ctx.Args().First() + } else if len(config.Config.Logins) == 1 { + name = config.Config.Logins[0].Name + } else { + return errors.New("Please specify a login name") } - return nil + return config.DeleteLogin(name) } diff --git a/modules/config/login.go b/modules/config/login.go index 374b074..ded6ea6 100644 --- a/modules/config/login.go +++ b/modules/config/login.go @@ -184,6 +184,27 @@ func AddLogin(name, token, user, passwd, sshKey, giteaURL string, insecure bool) return nil } +// DeleteLogin delete a login by name +func DeleteLogin(name string) error { + var idx = -1 + for i, l := range Config.Logins { + if l.Name == name { + idx = i + break + } + } + if idx == -1 { + return fmt.Errorf("can not delte login '%s', do not exist", name) + } + + Config.Logins = append(Config.Logins[:idx], Config.Logins[idx+1:]...) + if err := SaveConfig(); err != nil { + return err + } + + return nil +} + // GenerateLoginName generates a name string based on instance URL & adds username if the result is not unique func GenerateLoginName(url, user string) (string, error) { parsedURL, err := utils.NormalizeURL(url) -- 2.40.1 From 0edd12fe86fded847dab801312e18d0cb0a96b8c Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Thu, 1 Oct 2020 23:41:07 +0200 Subject: [PATCH 2/3] fix lint --- modules/config/login.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/config/login.go b/modules/config/login.go index ded6ea6..44df1bf 100644 --- a/modules/config/login.go +++ b/modules/config/login.go @@ -198,11 +198,8 @@ func DeleteLogin(name string) error { } Config.Logins = append(Config.Logins[:idx], Config.Logins[idx+1:]...) - if err := SaveConfig(); err != nil { - return err - } - return nil + return SaveConfig() } // GenerateLoginName generates a name string based on instance URL & adds username if the result is not unique -- 2.40.1 From 55a65de946f55b526cccac8342d1738426a7ebde Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 2 Oct 2020 01:45:56 +0200 Subject: [PATCH 3/3] fix message --- modules/config/login.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/config/login.go b/modules/config/login.go index 44df1bf..e781918 100644 --- a/modules/config/login.go +++ b/modules/config/login.go @@ -194,7 +194,7 @@ func DeleteLogin(name string) error { } } if idx == -1 { - return fmt.Errorf("can not delte login '%s', do not exist", name) + return fmt.Errorf("can not delete login '%s', does not exist", name) } Config.Logins = append(Config.Logins[:idx], Config.Logins[idx+1:]...) -- 2.40.1