Skip to content

Commit b92a5cf

Browse files
committed
Postpone glob template substitution until dynamic variables are evaluated.
1 parent 8dfafe5 commit b92a5cf

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

variables.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,24 @@ func (e *Executor) compiledTask(call *Call, evaluateShVars bool) (*ast.Task, err
9696
fullName = strings.Replace(fullName, "*", match, 1)
9797
}
9898
}
99-
10099
cache := &templater.Cache{Vars: vars}
100+
globber := func(globs []*ast.Glob) []*ast.Glob {
101+
// Delays globbing until dynamic variables are available.
102+
if evaluateShVars {
103+
return templater.ReplaceGlobs(globs, cache)
104+
} else {
105+
return origTask.Sources
106+
}
107+
}
101108
new := ast.Task{
102109
Task: origTask.Task,
103110
Label: templater.Replace(origTask.Label, cache),
104111
Desc: templater.Replace(origTask.Desc, cache),
105112
Prompt: templater.Replace(origTask.Prompt, cache),
106113
Summary: templater.Replace(origTask.Summary, cache),
107114
Aliases: origTask.Aliases,
108-
Sources: templater.ReplaceGlobs(origTask.Sources, cache),
109-
Generates: templater.ReplaceGlobs(origTask.Generates, cache),
115+
Sources: globber(origTask.Sources),
116+
Generates: globber(origTask.Generates),
110117
Dir: templater.Replace(origTask.Dir, cache),
111118
Set: origTask.Set,
112119
Shopt: origTask.Shopt,

0 commit comments

Comments
 (0)