Documentation
¶
Index ¶
- Constants
- Variables
- func AskFromList(msg, promptPrefix string, allowVars bool, options []prompt.Suggest) string
- func AskString(msg, promptPrefix string) string
- func CreateBuildConfig(c *cli.Context, confType utils.ProjectType) (err error)
- func GetBoolSuggests() []prompt.Suggest
- func GetSuggestsFromKeys(keys []string, SuggestionMap map[string]prompt.Suggest) []prompt.Suggest
- func OptionalKeyCallback(iq *InteractiveQuestionnaire, key string) (value string, err error)
- func ValidateMapEntry(key string, value interface{}, writersMap map[string]AnswerWriter) error
- func WriteBoolAnswer(resultMap *map[string]interface{}, key, value string) error
- func WriteIntAnswer(resultMap *map[string]interface{}, key, value string) error
- func WriteStringAnswer(resultMap *map[string]interface{}, key, value string) error
- func WriteStringArrayAnswer(resultMap *map[string]interface{}, key, value string) error
- type AnswerWriter
- type ConfigFile
- type InteractiveQuestionnaire
- type QuestionInfo
- type Result
Constants ¶
View Source
const ( // Common flags Global = "global" ResolutionServerId = "server-id-resolve" DeploymentServerId = "server-id-deploy" ResolutionRepo = "repo-resolve" DeploymentRepo = "repo-deploy" // Maven flags ResolutionReleasesRepo = "repo-resolve-releases" ResolutionSnapshotsRepo = "repo-resolve-snapshots" DeploymentReleasesRepo = "repo-deploy-releases" DeploymentSnapshotsRepo = "repo-deploy-snapshots" // Gradle flags UsesPlugin = "uses-plugin" UseWrapper = "use-wrapper" DeployMavenDesc = "deploy-maven-desc" DeployIvyDesc = "deploy-ivy-desc" IvyDescPattern = "ivy-desc-pattern" IvyArtifactsPattern = "ivy-artifacts-pattern" )
View Source
const ( PressTabMsg = " (press Tab for options):" InvalidAnswerMsg = "Invalid answer. Please select value from the suggestions list." VariableUseMsg = " You may use dynamic variable in the form of ${key}." EmptyValueMsg = "The value cannot be empty. Please enter a valid value:" OptionalKey = "OptionalKey" SaveAndExit = ":x" // Boolean answers True = "true" False = "false" CommaSeparatedListMsg = "The value should be a comma separated list" )
View Source
const BUILD_CONF_VERSION = 1
View Source
const (
InsertValuePromptMsg = "Insert the value for "
)
Variables ¶
View Source
var BoolQuestionInfo = QuestionInfo{ Options: GetBoolSuggests(), AllowVars: true, Writer: WriteBoolAnswer, }
View Source
var FreeStringQuestionInfo = QuestionInfo{ Options: nil, AllowVars: false, Writer: WriteStringAnswer, }
Common questions
View Source
var IntQuestionInfo = QuestionInfo{ Options: nil, AllowVars: true, Writer: WriteIntAnswer, }
View Source
var StringListQuestionInfo = QuestionInfo{ Msg: CommaSeparatedListMsg, Options: nil, AllowVars: true, Writer: WriteStringArrayAnswer, }
View Source
var VarPattern = regexp.MustCompile(`^\$\{\w+\}+$`)
Var can be inserted in the form of ${key}
Functions ¶
func AskFromList ¶
Ask question with list of possible answers. The answer must be chosen from the list, but can be a variable if allowVars set to true.
func AskString ¶
Ask question with free string answer, answer cannot be empty. Variable aren't check and can be part of the answer
func CreateBuildConfig ¶
func CreateBuildConfig(c *cli.Context, confType utils.ProjectType) (err error)
func GetBoolSuggests ¶
func GetSuggestsFromKeys ¶
func OptionalKeyCallback ¶
func OptionalKeyCallback(iq *InteractiveQuestionnaire, key string) (value string, err error)
After an optional value was chosen we'll ask for its value.
func ValidateMapEntry ¶
func ValidateMapEntry(key string, value interface{}, writersMap map[string]AnswerWriter) error
func WriteBoolAnswer ¶
func WriteIntAnswer ¶
func WriteStringAnswer ¶
Common writers
func WriteStringArrayAnswer ¶
Types ¶
type AnswerWriter ¶
Each question can have the following properties:
- Msg - will be printed in separate line
- PromptPrefix - will be printed before the input cursor in the answer line
- Options - In case the answer must be selected from a predefined list
- AllowVars - a flag indicates whether a variable (in form of ${var}) is an acceptable answer despite the predefined list
- Writer - how to write the answer to the final config map
- MapKey - the key under which the answer will be written to the configMap
- Callback - optional function can be executed after the answer was inserted. Can be used to implement some dependencies between questions.
type ConfigFile ¶
type ConfigFile struct {
Interactive bool `yaml:"-"`
Version int `yaml:"version,omitempty"`
ConfigType string `yaml:"type,omitempty"`
Resolver utils.Repository `yaml:"resolver,omitempty"`
Deployer utils.Repository `yaml:"deployer,omitempty"`
UsePlugin bool `yaml:"usePlugin,omitempty"`
UseWrapper bool `yaml:"useWrapper,omitempty"`
}
func NewConfigFile ¶
func NewConfigFile(confType utils.ProjectType, c *cli.Context) *ConfigFile
func (*ConfigFile) VerifyConfigFile ¶
func (configFile *ConfigFile) VerifyConfigFile(configFilePath string) error
Verify config file doesn't exist or prompt to override it
type InteractiveQuestionnaire ¶
type InteractiveQuestionnaire struct {
QuestionsMap map[string]QuestionInfo
MandatoryQuestionsKeys []string
OptionalKeysSuggests []prompt.Suggest
AnswersMap map[string]interface{}
}
The interactive questionnaire works as follows:
We have to provide a map of QuestionInfo which include all possible questions may be asked. 1. Mandatory Questions: * We will ask all the questions in MandatoryQuestionsKeys list one after the other. 2. Optional questions: * We have to provide a slice of prompt.Suggest, in which each suggest.Text is a key of a question in the map. * After a suggest was chosen from the list, the corresponding question from the map will be asked. * Each answer is written to to the configMap using its writer, under the MapKey specified in the questionInfo. * We will execute the previous step until the SaveAndExit string was inserted.
func (*InteractiveQuestionnaire) AskQuestion ¶
func (iq *InteractiveQuestionnaire) AskQuestion(question QuestionInfo) (value string, err error)
Ask question steps:
- Ask for string/from list
- Write the answer to answersMap (if writer provided)
- Run callback (if provided)q
func (*InteractiveQuestionnaire) Perform ¶
func (iq *InteractiveQuestionnaire) Perform() error
The main function to perform the questionnaire
type QuestionInfo ¶
type Result ¶
type Result struct {
// contains filtered or unexported fields
}
func (*Result) Reader ¶
func (r *Result) Reader() *content.ContentReader
func (*Result) SetFailCount ¶
func (*Result) SetReader ¶
func (r *Result) SetReader(reader *content.ContentReader)
func (*Result) SetSuccessCount ¶
func (*Result) SuccessCount ¶
Click to show internal directories.
Click to hide internal directories.