commands/stack/save/prompt.go (43 lines of code) (raw):

package save import ( "errors" "strings" "gitlab.com/gitlab-org/cli/commands/cmdutils" ) // cleanDescription removes comments and trims space for all non-comment lines func cleanDescription(message string) string { var sb strings.Builder for line := range strings.SplitSeq(message, "\n") { if strings.HasPrefix(line, "#") { continue } sb.WriteString(line) sb.WriteString("\n") } return strings.TrimSpace(sb.String()) } func promptForCommit(f *cmdutils.Factory, getText cmdutils.GetTextUsingEditor, defaultValue string) (string, error) { message := "\n# Please enter the commit message for this change. Lines starting\n# with '#' will be ignored. A message is required.\n#\n" editor, err := cmdutils.GetEditor(f.Config) if err != nil { return "", err } if defaultValue != "" { message = defaultValue + message } var cleanedDescription string if !f.IO.IsOutputTTY() { if defaultValue == "" { return "", errors.New("No commit message provided and no TTY. Please provide a commit message with the --message flag.") } return defaultValue, nil } description, err = getText(editor, "glab-stack-save-description*.gitcommit", message) if err != nil { return "", err } cleanedDescription = cleanDescription(description) if cleanedDescription == "" { return "", errors.New("Commit message cannot be empty.") } return cleanedDescription, nil }