aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--commands/user_create.go59
-rw-r--r--doc/man/git-bug-user-create.112
-rw-r--r--doc/md/git-bug_user_create.md5
-rw-r--r--misc/bash_completion/git-bug18
4 files changed, 73 insertions, 21 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
}
diff --git a/doc/man/git-bug-user-create.1 b/doc/man/git-bug-user-create.1
index fa991cc3..181cd15f 100644
--- a/doc/man/git-bug-user-create.1
+++ b/doc/man/git-bug-user-create.1
@@ -18,9 +18,21 @@ Create a new identity.
.SH OPTIONS
.PP
+\fB\-a\fP, \fB\-\-avatar\fP=""
+ Avatar URL
+
+.PP
+\fB\-e\fP, \fB\-\-email\fP=""
+ Email of the user
+
+.PP
\fB\-h\fP, \fB\-\-help\fP[=false]
help for create
+.PP
+\fB\-n\fP, \fB\-\-name\fP=""
+ Name to identify the user
+
.SH SEE ALSO
.PP
diff --git a/doc/md/git-bug_user_create.md b/doc/md/git-bug_user_create.md
index 95fcc5eb..25811322 100644
--- a/doc/md/git-bug_user_create.md
+++ b/doc/md/git-bug_user_create.md
@@ -9,7 +9,10 @@ git-bug user create [flags]
### Options
```
- -h, --help help for create
+ -a, --avatar string Avatar URL
+ -e, --email string Email of the user
+ -h, --help help for create
+ -n, --name string Name to identify the user
```
### SEE ALSO
diff --git a/misc/bash_completion/git-bug b/misc/bash_completion/git-bug
index 60872785..bdca026f 100644
--- a/misc/bash_completion/git-bug
+++ b/misc/bash_completion/git-bug
@@ -1257,6 +1257,24 @@ _git-bug_user_create()
flags_with_completion=()
flags_completion=()
+ flags+=("--avatar=")
+ two_word_flags+=("--avatar")
+ two_word_flags+=("-a")
+ local_nonpersistent_flags+=("--avatar")
+ local_nonpersistent_flags+=("--avatar=")
+ local_nonpersistent_flags+=("-a")
+ flags+=("--email=")
+ two_word_flags+=("--email")
+ two_word_flags+=("-e")
+ local_nonpersistent_flags+=("--email")
+ local_nonpersistent_flags+=("--email=")
+ local_nonpersistent_flags+=("-e")
+ flags+=("--name=")
+ two_word_flags+=("--name")
+ two_word_flags+=("-n")
+ local_nonpersistent_flags+=("--name")
+ local_nonpersistent_flags+=("--name=")
+ local_nonpersistent_flags+=("-n")
must_have_one_flag=()
must_have_one_noun=()