MCPcopy
hub / github.com/cortexlabs/cortex / ReadPrompt

Function ReadPrompt

pkg/lib/configreader/reader.go:621–788  ·  view source on GitHub ↗
(dest interface{}, promptValidation *PromptValidation)

Source from the content-addressed store, hash-verified

619}
620
621func ReadPrompt(dest interface{}, promptValidation *PromptValidation) error {
622 var val interface{}
623 var err error
624 shouldPrintTrailingNewLine := false
625
626 // Validate any skipped fields first, so that any errors are returned before prompting
627 if promptValidation.SkipNonEmptyFields {
628 for _, promptItemValidation := range promptValidation.PromptItemValidations {
629 v := reflect.ValueOf(dest).Elem().FieldByName(promptItemValidation.StructField)
630 if !v.IsZero() {
631 if promptItemValidation.StringValidation != nil && promptItemValidation.Parser == nil {
632 if _, err := ValidateStringProvided(v.Interface().(string), promptItemValidation.StringValidation); err != nil {
633 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
634 }
635 } else if promptItemValidation.StringPtrValidation != nil && promptItemValidation.Parser == nil {
636 if _, err := ValidateStringPtrProvided(v.Interface().(*string), promptItemValidation.StringPtrValidation); err != nil {
637 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
638 }
639 } else if promptItemValidation.BoolValidation != nil {
640 if _, err := ValidateBoolProvided(v.Interface().(bool), promptItemValidation.BoolValidation); err != nil {
641 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
642 }
643 } else if promptItemValidation.BoolPtrValidation != nil {
644 if _, err := ValidateBoolPtrProvided(v.Interface().(*bool), promptItemValidation.BoolPtrValidation); err != nil {
645 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
646 }
647 } else if promptItemValidation.IntValidation != nil {
648 if _, err := ValidateIntProvided(v.Interface().(int), promptItemValidation.IntValidation); err != nil {
649 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
650 }
651 } else if promptItemValidation.IntPtrValidation != nil {
652 if _, err := ValidateIntPtrProvided(v.Interface().(*int), promptItemValidation.IntPtrValidation); err != nil {
653 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
654 }
655 } else if promptItemValidation.Int32Validation != nil {
656 if _, err := ValidateInt32Provided(v.Interface().(int32), promptItemValidation.Int32Validation); err != nil {
657 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
658 }
659 } else if promptItemValidation.Int32PtrValidation != nil {
660 if _, err := ValidateInt32PtrProvided(v.Interface().(*int32), promptItemValidation.Int32PtrValidation); err != nil {
661 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
662 }
663 } else if promptItemValidation.Int64Validation != nil {
664 if _, err := ValidateInt64Provided(v.Interface().(int64), promptItemValidation.Int64Validation); err != nil {
665 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
666 }
667 } else if promptItemValidation.Int64PtrValidation != nil {
668 if _, err := ValidateInt64PtrProvided(v.Interface().(*int64), promptItemValidation.Int64PtrValidation); err != nil {
669 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
670 }
671 } else if promptItemValidation.Float32Validation != nil {
672 if _, err := ValidateFloat32Provided(v.Interface().(float32), promptItemValidation.Float32Validation); err != nil {
673 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
674 }
675 } else if promptItemValidation.Float32PtrValidation != nil {
676 if _, err := ValidateFloat32PtrProvided(v.Interface().(*float32), promptItemValidation.Float32PtrValidation); err != nil {
677 return errors.Wrap(err, inferPromptFieldName(reflect.TypeOf(dest), promptItemValidation.StructField))
678 }

Callers

nothing calls this directly

Calls 15

WrapFunction · 0.92
PanicFunction · 0.92
MessageFunction · 0.92
ValidateStringProvidedFunction · 0.85
inferPromptFieldNameFunction · 0.85
ValidateBoolProvidedFunction · 0.85
ValidateBoolPtrProvidedFunction · 0.85
ValidateIntProvidedFunction · 0.85
ValidateIntPtrProvidedFunction · 0.85
ValidateInt32ProvidedFunction · 0.85
ValidateInt32PtrProvidedFunction · 0.85

Tested by

no test coverage detected