github.com/jfrog/jfrog-cli-core@v1.12.1/artifactory/commands/buildinfo/collectenv.go (about) 1 package buildinfo 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/jfrog/jfrog-cli-core/artifactory/utils" 8 "github.com/jfrog/jfrog-cli-core/utils/config" 9 "github.com/jfrog/jfrog-client-go/artifactory/buildinfo" 10 "github.com/jfrog/jfrog-client-go/utils/log" 11 ) 12 13 type BuildCollectEnvCommand struct { 14 buildConfiguration *utils.BuildConfiguration 15 } 16 17 func NewBuildCollectEnvCommand() *BuildCollectEnvCommand { 18 return &BuildCollectEnvCommand{} 19 } 20 21 func (bcec *BuildCollectEnvCommand) SetBuildConfiguration(buildConfiguration *utils.BuildConfiguration) *BuildCollectEnvCommand { 22 bcec.buildConfiguration = buildConfiguration 23 return bcec 24 } 25 26 func (bcec *BuildCollectEnvCommand) Run() error { 27 log.Info("Collecting environment variables...") 28 err := utils.SaveBuildGeneralDetails(bcec.buildConfiguration.BuildName, bcec.buildConfiguration.BuildNumber, bcec.buildConfiguration.Project) 29 if err != nil { 30 return err 31 } 32 populateFunc := func(partial *buildinfo.Partial) { 33 partial.Env = getEnvVariables() 34 } 35 err = utils.SavePartialBuildInfo(bcec.buildConfiguration.BuildName, bcec.buildConfiguration.BuildNumber, bcec.buildConfiguration.Project, populateFunc) 36 if err != nil { 37 return err 38 } 39 log.Info("Collected environment variables for", bcec.buildConfiguration.BuildName+"/"+bcec.buildConfiguration.BuildNumber+".") 40 return nil 41 } 42 43 // Returns the default configured Artifactory server 44 func (bcec *BuildCollectEnvCommand) ServerDetails() (*config.ServerDetails, error) { 45 return config.GetDefaultServerConf() 46 } 47 48 func (bcec *BuildCollectEnvCommand) CommandName() string { 49 return "rt_build_collect_env" 50 } 51 52 func getEnvVariables() buildinfo.Env { 53 m := make(map[string]string) 54 for _, e := range os.Environ() { 55 pair := strings.Split(e, "=") 56 if len(pair[0]) != 0 { 57 m["buildInfo.env."+pair[0]] = pair[1] 58 } 59 } 60 return m 61 }