2
0

validate.go 543 B

123456789101112131415161718192021222324252627282930
  1. package stack
  2. import (
  3. "fmt"
  4. "gopkg.in/yaml.v2"
  5. )
  6. func createDefaultPorterYaml() *PorterStackYAML {
  7. return &PorterStackYAML{
  8. Apps: nil,
  9. }
  10. }
  11. func ValidateAndMarshal(raw []byte) (*PorterStackYAML, error) {
  12. var parsed *PorterStackYAML
  13. if raw == nil {
  14. parsed = createDefaultPorterYaml()
  15. } else {
  16. parsed = &PorterStackYAML{}
  17. err := yaml.Unmarshal(raw, parsed)
  18. if err != nil {
  19. errMsg := composePreviewMessage("error parsing porter.yaml", Error)
  20. return nil, fmt.Errorf("%s: %w", errMsg, err)
  21. }
  22. }
  23. return parsed, nil
  24. }