mirror of
https://gitea.com/gitea/tea.git
synced 2024-09-01 04:14:18 -04:00
Unexport generateToken() move CreateLogin into task Create func config.SetDefaultLogin() Unexport loadConfig() & saveConfig unexport config var make SetDefaultLogin() case insensitive update func descriptions move FindSSHKey to task module Reviewed-on: https://gitea.com/gitea/tea/pulls/288 Reviewed-by: Norwin <noerw@noreply.gitea.io> Reviewed-by: Andrew Thornton <art27@cantab.net> Co-Authored-By: 6543 <6543@obermui.de> Co-Committed-By: 6543 <6543@obermui.de>
92 lines
2.3 KiB
Go
92 lines
2.3 KiB
Go
// 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 interact
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"code.gitea.io/tea/modules/task"
|
|
|
|
"github.com/AlecAivazis/survey/v2"
|
|
)
|
|
|
|
// CreateLogin create an login interactive
|
|
func CreateLogin() error {
|
|
var name, token, user, passwd, sshKey, giteaURL string
|
|
var insecure = false
|
|
|
|
promptI := &survey.Input{Message: "URL of Gitea instance: "}
|
|
if err := survey.AskOne(promptI, &giteaURL, survey.WithValidator(survey.Required)); err != nil {
|
|
return err
|
|
}
|
|
giteaURL = strings.TrimSuffix(strings.TrimSpace(giteaURL), "/")
|
|
if len(giteaURL) == 0 {
|
|
fmt.Println("URL is required!")
|
|
return nil
|
|
}
|
|
|
|
name, err := task.GenerateLoginName(giteaURL, "")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
promptI = &survey.Input{Message: "Name of new Login [" + name + "]: "}
|
|
if err := survey.AskOne(promptI, &name); err != nil {
|
|
return err
|
|
}
|
|
|
|
var hasToken bool
|
|
promptYN := &survey.Confirm{
|
|
Message: "Do you have an access token?",
|
|
Default: false,
|
|
}
|
|
if err = survey.AskOne(promptYN, &hasToken); err != nil {
|
|
return err
|
|
}
|
|
|
|
if hasToken {
|
|
promptI = &survey.Input{Message: "Token: "}
|
|
if err := survey.AskOne(promptI, &token, survey.WithValidator(survey.Required)); err != nil {
|
|
return err
|
|
}
|
|
} else {
|
|
promptI = &survey.Input{Message: "Username: "}
|
|
if err = survey.AskOne(promptI, &user, survey.WithValidator(survey.Required)); err != nil {
|
|
return err
|
|
}
|
|
|
|
promptPW := &survey.Password{Message: "Password: "}
|
|
if err = survey.AskOne(promptPW, &passwd, survey.WithValidator(survey.Required)); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
var optSettings bool
|
|
promptYN = &survey.Confirm{
|
|
Message: "Set Optional settings: ",
|
|
Default: false,
|
|
}
|
|
if err = survey.AskOne(promptYN, &optSettings); err != nil {
|
|
return err
|
|
}
|
|
if optSettings {
|
|
promptI = &survey.Input{Message: "SSH Key Path (leave empty for auto-discovery):"}
|
|
if err := survey.AskOne(promptI, &sshKey); err != nil {
|
|
return err
|
|
}
|
|
|
|
promptYN = &survey.Confirm{
|
|
Message: "Allow Insecure connections: ",
|
|
Default: false,
|
|
}
|
|
if err = survey.AskOne(promptYN, &insecure); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return task.CreateLogin(name, token, user, passwd, sshKey, giteaURL, insecure)
|
|
}
|