1package exec
2
3import (
4	"fmt"
5)
6
7type StepMetadata struct {
8	BuildID               int
9	BuildName             string
10	TeamID                int
11	TeamName              string
12	JobID                 int
13	JobName               string
14	PipelineID            int
15	PipelineName          string
16	ResourceConfigScopeID int
17	ResourceConfigID      int
18	BaseResourceTypeID    int
19	ExternalURL           string
20}
21
22func (metadata StepMetadata) Env() []string {
23	env := []string{}
24
25	if metadata.BuildID != 0 {
26		env = append(env, fmt.Sprintf("BUILD_ID=%d", metadata.BuildID))
27	}
28
29	if metadata.BuildName != "" {
30		env = append(env, "BUILD_NAME="+metadata.BuildName)
31	}
32
33	if metadata.TeamID != 0 {
34		env = append(env, fmt.Sprintf("BUILD_TEAM_ID=%d", metadata.TeamID))
35	}
36
37	if metadata.TeamName != "" {
38		env = append(env, "BUILD_TEAM_NAME="+metadata.TeamName)
39	}
40
41	if metadata.JobID != 0 {
42		env = append(env, fmt.Sprintf("BUILD_JOB_ID=%d", metadata.JobID))
43	}
44
45	if metadata.JobName != "" {
46		env = append(env, "BUILD_JOB_NAME="+metadata.JobName)
47	}
48
49	if metadata.PipelineID != 0 {
50		env = append(env, fmt.Sprintf("BUILD_PIPELINE_ID=%d", metadata.PipelineID))
51	}
52
53	if metadata.PipelineName != "" {
54		env = append(env, "BUILD_PIPELINE_NAME="+metadata.PipelineName)
55	}
56
57	if metadata.ExternalURL != "" {
58		env = append(env, "ATC_EXTERNAL_URL="+metadata.ExternalURL)
59	}
60
61	return env
62}
63