mirror of
https://github.com/go-task/task.git
synced 2025-02-03 13:22:11 +02:00
Added ability to add environment variables per task
Add an anv section to the task
This commit is contained in:
parent
4de3abe9e2
commit
6f7b26908f
5
cmd/task/Taskfile.yml
Normal file
5
cmd/task/Taskfile.yml
Normal file
@ -0,0 +1,5 @@
|
||||
build:
|
||||
cmds:
|
||||
- echo $hallo
|
||||
env:
|
||||
hallo: welt
|
13
task.go
13
task.go
@ -2,6 +2,7 @@ package task
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
@ -47,6 +48,7 @@ type Task struct {
|
||||
Dir string
|
||||
Vars map[string]string
|
||||
Set string
|
||||
Env map[string]string
|
||||
}
|
||||
|
||||
// Run runs Task
|
||||
@ -104,7 +106,7 @@ func RunTask(name string) error {
|
||||
}
|
||||
|
||||
for i := range t.Cmds {
|
||||
if err = t.runCommand(i); err != nil {
|
||||
if err = t.runCommand(i, t.Env); err != nil {
|
||||
return &taskRunError{name, err}
|
||||
}
|
||||
}
|
||||
@ -129,7 +131,7 @@ func (t *Task) isUpToDate() bool {
|
||||
return generatesMinTime.After(sourcesMaxTime)
|
||||
}
|
||||
|
||||
func (t *Task) runCommand(i int) error {
|
||||
func (t *Task) runCommand(i int, envVariables map[string]string) error {
|
||||
vars, err := t.handleVariables()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -151,6 +153,13 @@ func (t *Task) runCommand(i int) error {
|
||||
if dir != "" {
|
||||
cmd.Dir = dir
|
||||
}
|
||||
if nil != envVariables {
|
||||
env := os.Environ()
|
||||
for key, value := range envVariables {
|
||||
env = append(env, fmt.Sprintf("%s=%s", key, value))
|
||||
}
|
||||
cmd.Env = env
|
||||
}
|
||||
cmd.Stdin = os.Stdin
|
||||
cmd.Stderr = os.Stderr
|
||||
if t.Set != "" {
|
||||
|
Loading…
x
Reference in New Issue
Block a user