Add Login Manage Functions (#182)
rename Active to Default manage Default login via CI use open to edit login config ... for now Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/182 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Reviewed-by: Norwin <noerw@noreply.gitea.io>
This commit is contained in:
parent
3652f1dcb2
commit
eacf1be066
|
@ -30,7 +30,7 @@ type Login struct {
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
URL string `yaml:"url"`
|
URL string `yaml:"url"`
|
||||||
Token string `yaml:"token"`
|
Token string `yaml:"token"`
|
||||||
Active bool `yaml:"active"`
|
Default bool `yaml:"default"`
|
||||||
SSHHost string `yaml:"ssh_host"`
|
SSHHost string `yaml:"ssh_host"`
|
||||||
// optional path to the private key
|
// optional path to the private key
|
||||||
SSHKey string `yaml:"ssh_key"`
|
SSHKey string `yaml:"ssh_key"`
|
||||||
|
@ -119,12 +119,12 @@ func getOwnerAndRepo(repoPath, user string) (string, string) {
|
||||||
return user, repoPath
|
return user, repoPath
|
||||||
}
|
}
|
||||||
|
|
||||||
func getActiveLogin() (*Login, error) {
|
func getDefaultLogin() (*Login, error) {
|
||||||
if len(config.Logins) == 0 {
|
if len(config.Logins) == 0 {
|
||||||
return nil, errors.New("No available login")
|
return nil, errors.New("No available login")
|
||||||
}
|
}
|
||||||
for _, l := range config.Logins {
|
for _, l := range config.Logins {
|
||||||
if l.Active {
|
if l.Default {
|
||||||
return &l, nil
|
return &l, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,7 @@ func initCommand() (*Login, string, string) {
|
||||||
log.Fatal("load config file failed ", yamlConfigPath)
|
log.Fatal("load config file failed ", yamlConfigPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
if login, err = getActiveLogin(); err != nil {
|
if login, err = getDefaultLogin(); err != nil {
|
||||||
log.Fatal(err.Error())
|
log.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ func initCommandLoginOnly() *Login {
|
||||||
|
|
||||||
var login *Login
|
var login *Login
|
||||||
if loginValue == "" {
|
if loginValue == "" {
|
||||||
login, err = getActiveLogin()
|
login, err = getDefaultLogin()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
56
cmd/login.go
56
cmd/login.go
|
@ -17,6 +17,7 @@ import (
|
||||||
|
|
||||||
"code.gitea.io/sdk/gitea"
|
"code.gitea.io/sdk/gitea"
|
||||||
|
|
||||||
|
"github.com/skratchdot/open-golang/open"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -29,9 +30,62 @@ var CmdLogin = cli.Command{
|
||||||
Subcommands: []*cli.Command{
|
Subcommands: []*cli.Command{
|
||||||
&cmdLoginList,
|
&cmdLoginList,
|
||||||
&cmdLoginAdd,
|
&cmdLoginAdd,
|
||||||
|
&cmdLoginEdit,
|
||||||
|
&cmdLoginSetDefault,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// cmdLoginEdit represents to login a gitea server.
|
||||||
|
var cmdLoginEdit = cli.Command{
|
||||||
|
Name: "edit",
|
||||||
|
Usage: "Edit Gitea logins",
|
||||||
|
Description: `Edit Gitea logins`,
|
||||||
|
Action: runLoginEdit,
|
||||||
|
Flags: []cli.Flag{&OutputFlag},
|
||||||
|
}
|
||||||
|
|
||||||
|
func runLoginEdit(ctx *cli.Context) error {
|
||||||
|
return open.Start(yamlConfigPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
// cmdLoginSetDefault represents to login a gitea server.
|
||||||
|
var cmdLoginSetDefault = cli.Command{
|
||||||
|
Name: "default",
|
||||||
|
Usage: "Get or Set Default Login",
|
||||||
|
Description: `Get or Set Default Login`,
|
||||||
|
ArgsUsage: "<Login>",
|
||||||
|
Action: runLoginSetDefault,
|
||||||
|
Flags: []cli.Flag{&OutputFlag},
|
||||||
|
}
|
||||||
|
|
||||||
|
func runLoginSetDefault(ctx *cli.Context) error {
|
||||||
|
if err := loadConfig(yamlConfigPath); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if ctx.Args().Len() == 0 {
|
||||||
|
l, err := getDefaultLogin()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fmt.Printf("Default Login: %s\n", l.Name)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
loginExist := false
|
||||||
|
for i := range config.Logins {
|
||||||
|
config.Logins[i].Default = false
|
||||||
|
if config.Logins[i].Name == ctx.Args().First() {
|
||||||
|
config.Logins[i].Default = true
|
||||||
|
loginExist = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !loginExist {
|
||||||
|
return fmt.Errorf("login '%s' not found", ctx.Args().First())
|
||||||
|
}
|
||||||
|
|
||||||
|
return saveConfig(yamlConfigPath)
|
||||||
|
}
|
||||||
|
|
||||||
// CmdLogin represents to login a gitea server.
|
// CmdLogin represents to login a gitea server.
|
||||||
var cmdLoginAdd = cli.Command{
|
var cmdLoginAdd = cli.Command{
|
||||||
Name: "add",
|
Name: "add",
|
||||||
|
@ -287,6 +341,7 @@ func runLoginList(ctx *cli.Context) error {
|
||||||
"URL",
|
"URL",
|
||||||
"SSHHost",
|
"SSHHost",
|
||||||
"User",
|
"User",
|
||||||
|
"Default",
|
||||||
}
|
}
|
||||||
|
|
||||||
var values [][]string
|
var values [][]string
|
||||||
|
@ -297,6 +352,7 @@ func runLoginList(ctx *cli.Context) error {
|
||||||
l.URL,
|
l.URL,
|
||||||
l.GetSSHHost(),
|
l.GetSSHHost(),
|
||||||
l.User,
|
l.User,
|
||||||
|
fmt.Sprint(l.Default),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue