MCPcopy Create free account
hub / github.com/devspace-sh/devspace / applyFlags

Function applyFlags

pkg/devspace/pipeline/pipeline.go:425–467  ·  view source on GitHub ↗
(ctx devspacecontext.Context, pipeline *latest.Pipeline, setFlags []string)

Source from the content-addressed store, hash-verified

423}
424
425func applyFlags(ctx devspacecontext.Context, pipeline *latest.Pipeline, setFlags []string) (devspacecontext.Context, error) {
426 defaultFlags := map[string]string{}
427 for _, flag := range pipeline.Flags {
428 val, err := GetDefaultValue(flag)
429 if err != nil {
430 return nil, err
431 }
432
433 switch flag.Type {
434 case latest.PipelineFlagTypeStringArray:
435 defaultFlags[flag.Name] = fmt.Sprintf("%v", strings.Join(val.([]string), " "))
436 default:
437 defaultFlags[flag.Name] = fmt.Sprintf("%v", val)
438 }
439 }
440
441 newFlags := map[string]string{}
442 for _, v := range setFlags {
443 splitted := strings.Split(v, "=")
444 if len(splitted) <= 1 {
445 return nil, fmt.Errorf("error parsing flag %s: expected format flag=value", v)
446 }
447
448 flagName := splitted[0]
449 flagVal := strings.Join(splitted[1:], "=")
450 flagVals := strings.Join(strings.Split(flagVal, ","), " ")
451
452 if newFlags[flagName] != "" {
453 newFlags[flagName] = strings.Join([]string{newFlags[flagName], flagVals}, " ")
454 } else {
455 newFlags[flagName] = flagVals
456 }
457
458 }
459
460 for name, value := range defaultFlags {
461 if _, ok := newFlags[name]; !ok {
462 newFlags[name] = value
463 }
464 }
465
466 return ctx.WithContext(values.WithFlagsMap(ctx.Context(), newFlags)), nil
467}
468
469func (p *pipeline) createJob(configPipeline *latest.Pipeline, id string) (job *Job, err error) {
470 p.m.Lock()

Callers 2

startNewPipelineMethod · 0.85
startNewDependencyMethod · 0.85

Calls 5

WithFlagsMapFunction · 0.92
GetDefaultValueFunction · 0.85
WithContextMethod · 0.65
ContextMethod · 0.65
ErrorfMethod · 0.45

Tested by

no test coverage detected