mirror of
https://github.com/go-task/task.git
synced 2025-04-07 07:09:55 +02:00
Prevent running command more than once
This commit is contained in:
parent
588de5d0dd
commit
53234b91e0
@ -22,10 +22,15 @@ var (
|
||||
ErrMultilineResultCmd = errors.New("Got multiline result from command")
|
||||
)
|
||||
|
||||
var varCmds = make(map[string]string)
|
||||
|
||||
func handleDynamicVariableContent(value string) (string, error) {
|
||||
if value == "" || value[0] != '$' {
|
||||
return value, nil
|
||||
}
|
||||
if result, ok := varCmds[value]; ok {
|
||||
return result, nil
|
||||
}
|
||||
var cmd *exec.Cmd
|
||||
if ShExists {
|
||||
cmd = exec.Command(ShPath, "-c", value[1:])
|
||||
@ -44,7 +49,9 @@ func handleDynamicVariableContent(value string) (string, error) {
|
||||
if bytes.ContainsRune(b, '\n') {
|
||||
return "", ErrMultilineResultCmd
|
||||
}
|
||||
return strings.TrimSpace(string(b)), nil
|
||||
result := strings.TrimSpace(string(b))
|
||||
varCmds[value] = result
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (t *Task) handleVariables() (map[string]string, error) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user