MCPcopy Create free account
hub / github.com/compose-spec/compose-go / Add

Method Add

loader/loader.go:226–253  ·  view source on GitHub ↗
(filename, service string)

Source from the content-addressed store, hash-verified

224}
225
226func (ct *cycleTracker) Add(filename, service string) (*cycleTracker, error) {
227 toAdd := serviceRef{filename: filename, service: service}
228 for _, loaded := range ct.loaded {
229 if toAdd == loaded {
230 // Create an error message of the form:
231 // Circular reference:
232 // service-a in docker-compose.yml
233 // extends service-b in docker-compose.yml
234 // extends service-a in docker-compose.yml
235 errLines := []string{
236 "Circular reference:",
237 fmt.Sprintf(" %s in %s", ct.loaded[0].service, ct.loaded[0].filename),
238 }
239 for _, service := range append(ct.loaded[1:], toAdd) {
240 errLines = append(errLines, fmt.Sprintf(" extends %s in %s", service.service, service.filename))
241 }
242
243 return nil, errors.New(strings.Join(errLines, "\n"))
244 }
245 }
246
247 var branch []serviceRef
248 branch = append(branch, ct.loaded...)
249 branch = append(branch, toAdd)
250 return &cycleTracker{
251 loaded: branch,
252 }, nil
253}
254
255// WithDiscardEnvFiles sets the Options to discard the `env_file` section after resolving to
256// the `environment` section

Callers 1

applyServiceExtendsFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected