diff --git a/cli/app/new.go b/cli/app/new.go index 5e4c88fe..c31583ca 100644 --- a/cli/app/new.go +++ b/cli/app/new.go @@ -112,6 +112,10 @@ var appNewCommand = cli.Command{ return err } + if err := ensureSecretLengths(secretsConfig, internal.Domain, sanitisedAppName); err != nil { + logrus.Fatal(err) + } + if err := promptForSecrets(recipe.Name, secretsConfig); err != nil { logrus.Fatal(err) } @@ -126,10 +130,6 @@ var appNewCommand = cli.Command{ logrus.Fatal(err) } - if err := ensureSecretLengths(secrets, sanitisedAppName); err != nil { - logrus.Fatal(err) - } - secretCols := []string{"Name", "Value"} secretTable = formatter.CreateTable(secretCols) for name, val := range secrets { @@ -262,12 +262,12 @@ func ensureServerFlag() error { return nil } -func ensureSecretLengths(secrets AppSecrets, sanitisedAppName string) error { +func ensureSecretLengths(secrets map[string]string, domainName string, sanitisedAppName string) error { if len(sanitisedAppName) > 45 { sanitisedAppName = sanitisedAppName[:45] } - domainLength := len(sanitisedAppName) + domainAndFormatLength := len(sanitisedAppName) + 4 failingSecrets := []string{} maxSecretLength := 0 @@ -277,20 +277,20 @@ func ensureSecretLengths(secrets AppSecrets, sanitisedAppName string) error { maxSecretLength = len(secretName) } - if len(secretName+"_v1")+domainLength > 64 { + if len(secretName)+domainAndFormatLength > 64 { failingSecrets = append(failingSecrets, secretName) } } if len(failingSecrets) > 0 { failedSecretsString := strings.Join(failingSecrets, ", ") - return fmt.Errorf("the following secrets are too long to work with the domain name %s, change their length or use a shorter domain name: %s", sanitisedAppName, failedSecretsString) + return fmt.Errorf("the following secrets are too long to work with the domain name %s\n change their length or use a shorter domain name:\n %s", domainName, failedSecretsString) } logrus.Debugf( `The longest secret name is %d including 4 extra characters for format %s__v1 fits with domain length of %d for max docker secret length of %d`, - maxSecretLength, sanitisedAppName, domainLength, domainLength+maxSecretLength+4) + maxSecretLength, sanitisedAppName, domainAndFormatLength, domainAndFormatLength+maxSecretLength) return nil }