github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/creds/set_pipeline_plan.go (about)

     1  package creds
     2  
     3  import (
     4  	"github.com/pf-qiu/concourse/v6/atc"
     5  	"github.com/pf-qiu/concourse/v6/vars"
     6  )
     7  
     8  type SetPipelinePlan struct {
     9  	variablesResolver vars.Variables
    10  	rawPlan           atc.SetPipelinePlan
    11  }
    12  
    13  func NewSetPipelinePlan(variables vars.Variables, plan atc.SetPipelinePlan) SetPipelinePlan {
    14  	return SetPipelinePlan{
    15  		variablesResolver: variables,
    16  		rawPlan:           plan,
    17  	}
    18  }
    19  
    20  func (s SetPipelinePlan) Evaluate() (atc.SetPipelinePlan, error) {
    21  	var plan atc.SetPipelinePlan
    22  
    23  	// Name should not be interpolated per #5277, thus backup name and restore
    24  	// after interpolation.
    25  	name := s.rawPlan.Name
    26  	err := evaluate(s.variablesResolver, s.rawPlan, &plan)
    27  	if err != nil {
    28  		return atc.SetPipelinePlan{}, err
    29  	}
    30  	plan.Name = name
    31  
    32  	return plan, nil
    33  }