@@ -56,39 +56,35 @@ func (e *Executor) handleDynamicVariableContent(value string) (string, error) {
5656 return result , nil
5757}
5858
59- func (e * Executor ) getVariables (call Call ) (map [ string ] string , error ) {
59+ func (e * Executor ) getVariables (call Call ) (Vars , error ) {
6060 t := e .Tasks [call .Task ]
6161
62- localVariables := make (map [string ]string )
63- for key , value := range t .Vars {
64- val , err := e .handleDynamicVariableContent (value )
65- if err != nil {
66- return nil , err
67- }
68- localVariables [key ] = val
69- }
70- if e .taskvars != nil {
71- for key , value := range e .taskvars {
72- val , err := e .handleDynamicVariableContent (value )
62+ result := make (Vars , len (t .Vars )+ len (e .taskvars )+ len (call .Vars ))
63+ merge := func (vars Vars ) error {
64+ for k , v := range vars {
65+ v , err := e .handleDynamicVariableContent (v )
7366 if err != nil {
74- return nil , err
67+ return err
7568 }
76- localVariables [ key ] = val
69+ result [ k ] = v
7770 }
71+ return nil
7872 }
79- for key , value := range getEnvironmentVariables () {
80- localVariables [key ] = value
73+
74+ if err := merge (e .taskvars ); err != nil {
75+ return nil , err
8176 }
82- if call .Vars != nil {
83- for k , v := range call .Vars {
84- val , err := e .handleDynamicVariableContent (v )
85- if err != nil {
86- return nil , err
87- }
88- localVariables [k ] = val
89- }
77+ if err := merge (t .Vars ); err != nil {
78+ return nil , err
79+ }
80+ if err := merge (getEnvironmentVariables ()); err != nil {
81+ return nil , err
9082 }
91- return localVariables , nil
83+ if err := merge (call .Vars ); err != nil {
84+ return nil , err
85+ }
86+
87+ return result , nil
9288}
9389
9490var templateFuncs template.FuncMap
@@ -152,10 +148,10 @@ func (e *Executor) ReplaceVariables(initial string, call Call) (string, error) {
152148}
153149
154150// GetEnvironmentVariables returns environment variables as map
155- func getEnvironmentVariables () map [ string ] string {
151+ func getEnvironmentVariables () Vars {
156152 var (
157153 env = os .Environ ()
158- m = make (map [ string ] string , len (env ))
154+ m = make (Vars , len (env ))
159155 )
160156
161157 for _ , e := range env {
0 commit comments