1
0
mirror of https://github.com/go-task/task.git synced 2025-04-15 11:56:34 +02:00

Do not support multiline result command by now

This commit is contained in:
Andrey Nering 2017-03-08 19:03:17 -03:00
parent 0cc7fae704
commit b9d1af315d

View File

@ -3,6 +3,7 @@ package task
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"errors"
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
@ -17,6 +18,8 @@ import (
var ( var (
// TaskvarsFilePath file containing additional variables // TaskvarsFilePath file containing additional variables
TaskvarsFilePath = "Taskvars" TaskvarsFilePath = "Taskvars"
// ErrMultilineResultCmd is returned when a command returns multiline result
ErrMultilineResultCmd = errors.New("Got multiline result from command")
) )
func handleDynamicVariableContent(value string) (string, error) { func handleDynamicVariableContent(value string) (string, error) {
@ -31,11 +34,17 @@ func handleDynamicVariableContent(value string) (string, error) {
} }
cmd.Stdin = os.Stdin cmd.Stdin = os.Stdin
cmd.Stderr = os.Stderr cmd.Stderr = os.Stderr
bytes, err := cmd.Output() b, err := cmd.Output()
if err != nil { if err != nil {
return "", err return "", err
} }
return strings.TrimSpace(string(bytes)), nil if b[len(b)-1] == '\n' {
b = b[:len(b)-1]
}
if bytes.ContainsRune(b, '\n') {
return "", ErrMultilineResultCmd
}
return strings.TrimSpace(string(b)), nil
} }
func (t *Task) handleVariables() (map[string]string, error) { func (t *Task) handleVariables() (map[string]string, error) {