aboutsummaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorHariharan <hello@cvhariharan.dev>2021-04-25 20:16:36 +0530
committerGitHub <noreply@github.com>2021-04-25 16:46:36 +0200
commitbc96f316ffa7dbf012e560c0b5304b716fb5daff (patch)
treef8f65259e085d1dd04bde34bc562952c50259ce6 /commands
parentb616fe9f35009287ee16b507a4d0417acd9d78a6 (diff)
downloadgit-bug-bc96f316ffa7dbf012e560c0b5304b716fb5daff.tar.gz
CLI - allow user create without prompt (#650)
* CLI - allow user create without prompt. Fixes #577 * Update commands/user_create.go email message Co-authored-by: Michael Muré <batolettre@gmail.com> * Update docs Co-authored-by: Michael Muré <batolettre@gmail.com>
Diffstat (limited to 'commands')
-rw-r--r--commands/user_create.go59
1 files changed, 39 insertions, 20 deletions
diff --git a/commands/user_create.go b/commands/user_create.go
index 5203d11c..06879f2e 100644
--- a/commands/user_create.go
+++ b/commands/user_create.go
@@ -6,49 +6,68 @@ import (
"github.com/MichaelMure/git-bug/input"
)
+type createUserOptions struct {
+ name string
+ email string
+ avatarURL string
+}
+
func newUserCreateCommand() *cobra.Command {
env := newEnv()
+ options := createUserOptions{}
cmd := &cobra.Command{
Use: "create",
Short: "Create a new identity.",
PreRunE: loadBackend(env),
PostRunE: closeBackend(env),
RunE: func(cmd *cobra.Command, args []string) error {
- return runUserCreate(env)
+ return runUserCreate(env, options)
},
}
+ flags := cmd.Flags()
+ flags.StringVarP(&options.name, "name", "n", "", "Name to identify the user")
+ flags.StringVarP(&options.email, "email", "e", "", "Email of the user")
+ flags.StringVarP(&options.avatarURL, "avatar", "a", "", "Avatar URL")
+
return cmd
}
-func runUserCreate(env *Env) error {
- preName, err := env.backend.GetUserName()
- if err != nil {
- return err
- }
+func runUserCreate(env *Env, opts createUserOptions) error {
- name, err := input.PromptDefault("Name", "name", preName, input.Required)
- if err != nil {
- return err
+ if opts.name == "" {
+ preName, err := env.backend.GetUserName()
+ if err != nil {
+ return err
+ }
+ opts.name, err = input.PromptDefault("Name", "name", preName, input.Required)
+ if err != nil {
+ return err
+ }
}
- preEmail, err := env.backend.GetUserEmail()
- if err != nil {
- return err
- }
+ if opts.email == "" {
+ preEmail, err := env.backend.GetUserEmail()
+ if err != nil {
+ return err
+ }
- email, err := input.PromptDefault("Email", "email", preEmail, input.Required)
- if err != nil {
- return err
+ opts.email, err = input.PromptDefault("Email", "email", preEmail, input.Required)
+ if err != nil {
+ return err
+ }
}
- avatarURL, err := input.Prompt("Avatar URL", "avatar")
- if err != nil {
- return err
+ if opts.avatarURL == "" {
+ var err error
+ opts.avatarURL, err = input.Prompt("Avatar URL", "avatar")
+ if err != nil {
+ return err
+ }
}
- id, err := env.backend.NewIdentityRaw(name, email, "", avatarURL, nil, nil)
+ id, err := env.backend.NewIdentityRaw(opts.name, opts.email, "", opts.avatarURL, nil, nil)
if err != nil {
return err
}