1
0
mirror of https://github.com/go-task/task.git synced 2025-03-05 15:05:42 +02:00

Merged branch develop into master

This commit is contained in:
Sascha Andres 2017-03-01 13:35:26 +01:00
commit 3779f72155

View File

@ -40,6 +40,7 @@ type Task struct {
Deps []string Deps []string
Sources []string Sources []string
Generates []string Generates []string
Chdir string
} }
type taskNotFoundError struct { type taskNotFoundError struct {
@ -100,7 +101,7 @@ func RunTask(name string) error {
} }
for _, c := range t.Cmds { for _, c := range t.Cmds {
if err := runCommand(c); err != nil { if err := runCommand(c, t.Chdir); err != nil {
return &taskRunError{name, err} return &taskRunError{name, err}
} }
} }
@ -125,13 +126,16 @@ func isTaskUpToDate(t *Task) bool {
return generatesMinTime.After(sourcesMaxTime) return generatesMinTime.After(sourcesMaxTime)
} }
func runCommand(c string) error { func runCommand(c, path string) error {
var cmd *exec.Cmd var cmd *exec.Cmd
if ShExists { if ShExists {
cmd = exec.Command(ShPath, "-c", c) cmd = exec.Command(ShPath, "-c", c)
} else { } else {
cmd = exec.Command("cmd", "/C", c) cmd = exec.Command("cmd", "/C", c)
} }
if "" != path {
cmd.Dir = path
}
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {