1
0
mirror of https://github.com/smallstep/cli.git synced 2025-08-09 03:22:43 +03:00

Check flag values before printing

This commit is contained in:
Carl Tashian
2021-03-22 12:52:37 -07:00
parent 1dea0ef8dd
commit bab10ae7c8
2 changed files with 18 additions and 11 deletions

View File

@@ -171,38 +171,38 @@ func initAction(ctx *cli.Context) (err error) {
return err
}
if create {
fmt.Print("What would you like to name your new PKI?\n")
ui.PrintlnIfEmpty("What would you like to name your new PKI?", ctx.String("name"))
name, err = ui.Prompt("(e.g. Smallstep)",
ui.WithValidateNotEmpty(), ui.WithValue(ctx.String("name")))
if err != nil {
return err
}
fmt.Print("What is the name of your organization?\n")
ui.Println("What is the name of your organization?")
org, err = ui.Prompt("(e.g. Smallstep)",
ui.WithValidateNotEmpty())
if err != nil {
return err
}
fmt.Print("What resource id do you want to use? [we will append -Root-CA or -Intermediate-CA]\n")
ui.Println("What resource id do you want to use? [we will append -Root-CA or -Intermediate-CA]")
resource, err = ui.Prompt("(e.g. Smallstep)",
ui.WithValidateRegexp("^[a-zA-Z0-9-_]+$"))
if err != nil {
return err
}
fmt.Print("What is the id of your project on Google's Cloud Platform?\n")
ui.Println("What is the id of your project on Google's Cloud Platform?")
project, err = ui.Prompt("(e.g. smallstep-ca)",
ui.WithValidateRegexp("^[a-z][a-z0-9-]{4,28}[a-z0-9]$"))
if err != nil {
return err
}
fmt.Print("What region or location do you want to use?\n")
ui.Println("What region or location do you want to use?")
location, err = ui.Prompt("(e.g. us-west1)",
ui.WithValidateRegexp("^[a-z0-9-]+$"))
if err != nil {
return err
}
} else {
fmt.Print("What certificate authority would you like to use?\n")
ui.Println("What certificate authority would you like to use?")
iss, err = ui.Prompt("(e.g. projects/smallstep-ca/locations/us-west1/certificateAuthorities/intermediate-ca)",
ui.WithValidateRegexp("^projects/[a-z][a-z0-9-]{4,28}[a-z0-9]/locations/[a-z0-9-]+/certificateAuthorities/[a-zA-Z0-9-_]+$"))
if err != nil {
@@ -219,7 +219,7 @@ func initAction(ctx *cli.Context) (err error) {
Location: location,
}
default:
fmt.Print("What would you like to name your new PKI?\n")
ui.PrintlnIfEmpty("What would you like to name your new PKI?", ctx.String("name"))
name, err = ui.Prompt("(e.g. Smallstep)",
ui.WithValidateNotEmpty(), ui.WithValue(ctx.String("name")))
if err != nil {
@@ -239,7 +239,7 @@ func initAction(ctx *cli.Context) (err error) {
if configure {
var names string
fmt.Print("What DNS names or IP addresses would you like to add to your new CA?\n")
ui.PrintlnIfEmpty("What DNS names or IP addresses would you like to add to your new CA?", ctx.String("dns"))
names, err = ui.Prompt("(e.g. ca.smallstep.com[,1.1.1.1,etc.])",
ui.WithValidateFunc(ui.DNS()), ui.WithValue(ctx.String("dns")))
if err != nil {
@@ -256,7 +256,7 @@ func initAction(ctx *cli.Context) (err error) {
}
var address string
fmt.Print("What IP and port will your new CA bind to?\n")
ui.PrintlnIfEmpty("What IP and port will your new CA bind to?", ctx.String("address"))
address, err = ui.Prompt("(e.g. :443 or 127.0.0.1:4343)",
ui.WithValidateFunc(ui.Address()), ui.WithValue(ctx.String("address")))
if err != nil {
@@ -264,7 +264,7 @@ func initAction(ctx *cli.Context) (err error) {
}
var provisioner string
fmt.Print("What would you like to name the CA's first provisioner?\n")
ui.PrintlnIfEmpty("What would you like to name the CA's first provisioner?", ctx.String("provisioner"))
provisioner, err = ui.Prompt("(e.g. you@smallstep.com)",
ui.WithValidateNotEmpty(), ui.WithValue(ctx.String("provisioner")))
if err != nil {
@@ -277,7 +277,7 @@ func initAction(ctx *cli.Context) (err error) {
p.SetCAURL(caURL)
}
fmt.Print("Choose a password for your CA keys and first provisioner.\n")
ui.PrintlnIfEmpty("Choose a password for your CA keys and first provisioner.", password)
pass, err := ui.PromptPasswordGenerate("[leave empty and we'll generate one]",
ui.WithRichPrompt(), ui.WithValue(password))
if err != nil {

View File

@@ -85,6 +85,13 @@ func PrintSelected(name, value string, opts ...Option) error {
return nil
}
// Print if the value (eg. a specific flag value) is empty
func PrintlnIfEmpty(s, value string) {
if value == "" {
Println(s)
}
}
// Prompt creates and runs a promptui.Prompt with the given label.
func Prompt(label string, opts ...Option) (string, error) {
o := &options{