diff --git a/cmd/login.go b/cmd/login.go index c5d5fd8..94f2a4a 100644 --- a/cmd/login.go +++ b/cmd/login.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Gitea Authors. All rights reserved. +// Copyright 2020 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. @@ -27,6 +27,7 @@ var CmdLogin = cli.Command{ &login.CmdLoginList, &login.CmdLoginAdd, &login.CmdLoginEdit, + &login.CmdLoginDelete, &login.CmdLoginSetDefault, }, } diff --git a/cmd/login/delete.go b/cmd/login/delete.go new file mode 100644 index 0000000..c8ccb4d --- /dev/null +++ b/cmd/login/delete.go @@ -0,0 +1,44 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package login + +import ( + "errors" + "log" + + "code.gitea.io/tea/modules/config" + + "github.com/urfave/cli/v2" +) + +// CmdLoginDelete is a command to delete a login +var CmdLoginDelete = cli.Command{ + Name: "delete", + Aliases: []string{"rm"}, + Usage: "Remove a Gitea login", + Description: `Remove a Gitea login`, + ArgsUsage: "", + Action: RunLoginDelete, +} + +// RunLoginDelete runs the action of a login delete command +func RunLoginDelete(ctx *cli.Context) error { + logins, err := config.GetLogins() + if err != nil { + log.Fatal(err) + } + + var name string + + if len(ctx.Args().First()) != 0 { + name = ctx.Args().First() + } else if len(logins) == 1 { + name = logins[0].Name + } else { + return errors.New("Please specify a login name") + } + + return config.DeleteLogin(name) +} diff --git a/cmd/logout.go b/cmd/logout.go index 4aeae80..c676b9e 100644 --- a/cmd/logout.go +++ b/cmd/logout.go @@ -1,14 +1,11 @@ -// Copyright 2018 The Gitea Authors. All rights reserved. +// Copyright 2020 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package cmd import ( - "errors" - "log" - - "code.gitea.io/tea/modules/config" + "code.gitea.io/tea/cmd/login" "github.com/urfave/cli/v2" ) @@ -18,33 +15,6 @@ var CmdLogout = cli.Command{ Name: "logout", Usage: "Log out from a Gitea server", Description: `Log out from a Gitea server`, - Action: runLogout, - Flags: []cli.Flag{ - &cli.StringFlag{ - Name: "name", - Aliases: []string{"n"}, - Usage: "Login name to remove", - }, - }, -} - -func runLogout(ctx *cli.Context) error { - logins, err := config.GetLogins() - 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(logins) == 1 { - name = logins[0].Name - } else { - return errors.New("Please specify a login name") - } - - return config.DeleteLogin(name) + ArgsUsage: "", + Action: login.RunLoginDelete, }