1
0
mirror of https://github.com/go-task/task.git synced 2025-02-07 13:41:53 +02:00

Implemented dry run mode

Added a --dry-run flag that compiles and steps through each task, but does not execute them. The commands that would have been run are printed. See #125.
This commit is contained in:
Josh Bebbington 2018-07-29 00:38:52 +01:00
parent 31273cd6ff
commit 1c7ca94d49
4 changed files with 15 additions and 1 deletions

View File

@ -635,6 +635,11 @@ tasks:
- echo "This will print nothing" > /dev/null
```
## Dry Run Mode
Dry run mode (`--dry-run`) compiles and steps through each task, printing the commands
that would be run without executing them. This is useful for debugging your Taskfiles.
## Output syntax
By default, Task just redirect the STDOUT and STDERR of the running commands

View File

@ -17,7 +17,7 @@ var (
version = "master"
)
const usage = `Usage: task [-ilfwvsd] [--init] [--list] [--force] [--watch] [--verbose] [--silent] [--dir] [task...]
const usage = `Usage: task [-ilfwvsd] [--init] [--list] [--force] [--watch] [--verbose] [--silent] [--dir] [--dry-run] [task...]
Runs the specified task(s). Falls back to the "default" task if no task name
was specified, or lists all tasks if an unknown task name was specified.
@ -55,6 +55,7 @@ func main() {
watch bool
verbose bool
silent bool
dryRun bool
dir string
)
@ -66,6 +67,7 @@ func main() {
pflag.BoolVarP(&watch, "watch", "w", false, "enables watch of the given task")
pflag.BoolVarP(&verbose, "verbose", "v", false, "enables verbose mode")
pflag.BoolVarP(&silent, "silent", "s", false, "disables echoing")
pflag.BoolVar(&dryRun, "dry-run", false, "compiles and prints tasks in the order that they would be run, without executing them")
pflag.StringVarP(&dir, "dir", "d", "", "sets directory of execution")
pflag.Parse()
@ -91,6 +93,7 @@ func main() {
Verbose: verbose,
Silent: silent,
Dir: dir,
DryRun: dryRun,
Context: getSignalContext(),

View File

@ -12,6 +12,7 @@ function __list() {
_arguments \
'(-d --dir)'{-d,--dir}': :_files' \
'(--dry-run)'--dry-run \
'(-f --force)'{-f,--force} \
'(-i --init)'{-i,--init} \
'(-l --list)'{-l,--list} \

View File

@ -35,6 +35,7 @@ type Executor struct {
Watch bool
Verbose bool
Silent bool
DryRun bool
Context context.Context
@ -211,6 +212,10 @@ func (e *Executor) runCommand(ctx context.Context, t *taskfile.Task, call taskfi
e.Logger.Errf(cmd.Cmd)
}
if e.DryRun {
return nil
}
stdOut := e.Output.WrapWriter(e.Stdout, t.Prefix)
stdErr := e.Output.WrapWriter(e.Stderr, t.Prefix)
defer stdOut.Close()