MCPcopy
hub / github.com/helm/helm / LoadFile

Function LoadFile

pkg/chart/loader/load.go:114–158  ·  view source on GitHub ↗
(name string)

Source from the content-addressed store, hash-verified

112}
113
114func LoadFile(name string) (chart.Charter, error) {
115 if fi, err := os.Stat(name); err != nil {
116 return nil, err
117 } else if fi.IsDir() {
118 return nil, errors.New("cannot load a directory")
119 }
120
121 raw, err := os.Open(name)
122 if err != nil {
123 return nil, err
124 }
125 defer raw.Close()
126
127 err = archive.EnsureArchive(name, raw)
128 if err != nil {
129 return nil, err
130 }
131
132 files, err := archive.LoadArchiveFiles(raw)
133 if err != nil {
134 if errors.Is(err, gzip.ErrHeader) {
135 return nil, fmt.Errorf("file '%s' does not appear to be a valid chart file (details: %w)", name, err)
136 }
137 return nil, errors.New("unable to load chart archive")
138 }
139
140 for _, f := range files {
141 if f.Name == "Chart.yaml" {
142 c := new(chartBase)
143 if err := yaml.Unmarshal(f.Data, c); err != nil {
144 return c, fmt.Errorf("cannot load Chart.yaml: %w", err)
145 }
146 switch c.APIVersion {
147 case c2.APIVersionV1, c2.APIVersionV2, "":
148 return c2load.Load(name)
149 case c3.APIVersionV3:
150 return c3load.Load(name)
151 default:
152 return nil, errors.New("unsupported chart version")
153 }
154 }
155 }
156
157 return nil, errors.New("unable to detect chart version, no Chart.yaml found")
158}
159
160// LoadArchive loads from a reader containing a compressed tar archive.
161func LoadArchive(in io.Reader) (chart.Charter, error) {

Callers 2

ClearsignMethod · 0.92
LoadMethod · 0.70

Calls 5

EnsureArchiveFunction · 0.92
LoadArchiveFilesFunction · 0.92
CloseMethod · 0.80
IsMethod · 0.80
LoadMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…