blob: 0799e7db73b66a2676ffb032e2da73b8611db7f2 [file] [log] [blame]
Mohammed Naser3b3507d2023-11-28 21:13:39 -05001package defaults
2
3import (
4 "bytes"
5 _ "embed"
Oleksandr K.99651a62024-10-30 04:41:51 +01006 "strings"
Mohammed Naser3b3507d2023-11-28 21:13:39 -05007
8 "github.com/goccy/go-yaml"
9)
10
11var (
12 //go:embed vars/main.yml
Mohammed Naser59853d42023-11-29 20:32:24 -050013 varsFile []byte
Mohammed Naser3b3507d2023-11-28 21:13:39 -050014)
15
Oleksandr K.99651a62024-10-30 04:41:51 +010016// Define a global variable for the release value.
17var release = "main"
18
19// Function to replace the {{ release }} placeholders
20func replaceReleaseInYAML(yamlContent []byte, release string) []byte {
21 return []byte(strings.ReplaceAll(string(yamlContent), "{{ atmosphere_release }}", release))
22}
23
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050024func GetImages() (map[string]string, error) {
Oleksandr K.99651a62024-10-30 04:41:51 +010025 // Replace {{ release }} with the actual release value
26 modifiedVarsFile := replaceReleaseInYAML(varsFile, release)
27
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050028 path, err := yaml.PathString("$._atmosphere_images")
29 if err != nil {
30 return nil, err
31 }
32
33 var images map[string]string
Oleksandr K.99651a62024-10-30 04:41:51 +010034 if err := path.Read(bytes.NewReader(modifiedVarsFile), &images); err != nil {
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050035 return nil, err
36 }
37
38 return images, nil
39}
40
Mohammed Naser3b3507d2023-11-28 21:13:39 -050041func GetImageByKey(key string) (string, error) {
42 path, err := yaml.PathString("$._atmosphere_images." + key)
43 if err != nil {
44 return "", err
45 }
46
47 var image string
Mohammed Naser59853d42023-11-29 20:32:24 -050048 if err := path.Read(bytes.NewReader(varsFile), &image); err != nil {
Mohammed Naser3b3507d2023-11-28 21:13:39 -050049 return "", err
50 }
51
52 return image, nil
53}