forked from forj-oss/forjj-jenkins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_files_struct.go
45 lines (41 loc) · 1.1 KB
/
run_files_struct.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package main
import (
log "forjj-jenkins/reportlogs"
"os"
)
// RunFilesStruct List of files
type RunFilesStruct map[string]RunFileStruct
// createFiles loop on files to create them if needed.
func (fs RunFilesStruct) createFiles(model *JenkinsPluginModel, deployPath string) (err error) {
for key, envToSet := range fs {
if envToSet.If != "" {
// check if If evaluation return something or not. if not, the environment key won't be created.
if v, err := Evaluate(envToSet.If, model); err != nil {
log.Errorf("Error in evaluating '%s'. %s", key, err)
} else {
if v == "" {
continue
}
}
}
if v, err := Evaluate(envToSet.Value, model); err != nil {
log.Errorf("Error in evaluating '%s'. %s", key, err)
} else {
if err := envToSet.createFile(deployPath, key, v); err != nil {
log.Errorf("%s", err)
continue
}
}
}
return nil
}
// createFiles loop on files to create them if needed.
func (fs RunFilesStruct) deleteFiles() error {
for name, fileState := range fs {
if fileState.RemoveWhenDone {
// remove the file created.
os.Remove(name)
}
}
return nil
}