1
0
mirror of https://github.com/go-task/task.git synced 2025-08-10 22:42:19 +02:00

Merge pull request #563 from system-transparency/feature/interactive

Task: Add interactive parameter
This commit is contained in:
Andrey Nering
2021-09-26 21:40:50 -03:00
committed by GitHub
3 changed files with 10 additions and 0 deletions

View File

@@ -417,6 +417,12 @@ func (e *Executor) runCommand(ctx context.Context, t *taskfile.Task, call taskfi
stdOut := e.Output.WrapWriter(e.Stdout, t.Prefix) stdOut := e.Output.WrapWriter(e.Stdout, t.Prefix)
stdErr := e.Output.WrapWriter(e.Stderr, t.Prefix) stdErr := e.Output.WrapWriter(e.Stderr, t.Prefix)
if t.Interactive {
stdOut = output.Interleaved{}.WrapWriter(e.Stdout, t.Prefix)
stdErr = output.Interleaved{}.WrapWriter(e.Stderr, t.Prefix)
}
defer func() { defer func() {
if _, ok := stdOut.(*os.File); !ok { if _, ok := stdOut.(*os.File); !ok {
if closer, ok := stdOut.(io.Closer); ok { if closer, ok := stdOut.(io.Closer); ok {

View File

@@ -19,6 +19,7 @@ type Task struct {
Vars *Vars Vars *Vars
Env *Vars Env *Vars
Silent bool Silent bool
Interactive bool
Method string Method string
Prefix string Prefix string
IgnoreError bool IgnoreError bool
@@ -59,6 +60,7 @@ func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
Vars *Vars Vars *Vars
Env *Vars Env *Vars
Silent bool Silent bool
Interactive bool
Method string Method string
Prefix string Prefix string
IgnoreError bool `yaml:"ignore_error"` IgnoreError bool `yaml:"ignore_error"`
@@ -80,6 +82,7 @@ func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
t.Vars = task.Vars t.Vars = task.Vars
t.Env = task.Env t.Env = task.Env
t.Silent = task.Silent t.Silent = task.Silent
t.Interactive = task.Interactive
t.Method = task.Method t.Method = task.Method
t.Prefix = task.Prefix t.Prefix = task.Prefix
t.IgnoreError = task.IgnoreError t.IgnoreError = task.IgnoreError

View File

@@ -56,6 +56,7 @@ func (e *Executor) compiledTask(call taskfile.Call, evaluateShVars bool) (*taskf
Vars: nil, Vars: nil,
Env: nil, Env: nil,
Silent: origTask.Silent, Silent: origTask.Silent,
Interactive: origTask.Interactive,
Method: r.Replace(origTask.Method), Method: r.Replace(origTask.Method),
Prefix: r.Replace(origTask.Prefix), Prefix: r.Replace(origTask.Prefix),
IgnoreError: origTask.IgnoreError, IgnoreError: origTask.IgnoreError,