Skip to content

Commit

Permalink
Merge pull request #39 from gamerson/showInputsOutputs
Browse files Browse the repository at this point in the history
Add --show-inputs and --show-outputs options fixes #19
  • Loading branch information
dorongold committed Nov 19, 2020
2 parents 11f72f7 + a2f01cf commit 874e0a5
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.dorongold.gradle.tasktree

import org.gradle.api.Project
import org.gradle.api.execution.TaskExecutionGraph
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.diagnostics.AbstractReportTask
import org.gradle.api.tasks.diagnostics.internal.ReportRenderer
import org.gradle.api.tasks.diagnostics.internal.TextReportRenderer
Expand All @@ -16,6 +17,8 @@ import org.gradle.util.CollectionUtils
abstract class TaskTreeTask extends AbstractReportTask {
public TextReportRenderer renderer = new TextReportRenderer()
protected boolean noRepeat = false
protected boolean showInputs = false
protected boolean showOutputs = false
protected int taskDepth = Integer.MAX_VALUE

@Override
Expand Down Expand Up @@ -75,7 +78,7 @@ abstract class TaskTreeTask extends AbstractReportTask {

textOutput.println()
textOutput.text("To see task dependency tree for a specific task, run ")
metaData.describeCommand(textOutput.withStyle(Style.UserInput), String.format("<project-path>:<task> <project-path>:taskTree [--no-repeat] [--task-depth <depth>]"))
metaData.describeCommand(textOutput.withStyle(Style.UserInput), String.format("<project-path>:<task> <project-path>:taskTree [--no-repeat] [--task-depth <depth>] [--show-inputs] [--show-outputs]"))
textOutput.println()

textOutput.text("Executions of all tasks except for ")
Expand All @@ -100,6 +103,13 @@ abstract class TaskTreeTask extends AbstractReportTask {
return noRepeat
}

boolean isShowInputs() {
return showInputs
}

boolean isShowOutputs() {
return showOutputs
}

int getTaskDepth() {
return taskDepth
Expand Down Expand Up @@ -134,6 +144,38 @@ abstract class TaskTreeTask extends AbstractReportTask {
}
}, lastChild)

if (showInputs) {
FileCollection inputFiles = entryTask.task.inputs.files

if (!inputFiles.isEmpty()) {
renderer.visit({
it.text("${entryTask.task.path}:inputs.files")
}, lastChild)

inputFiles.each { inputFile ->
renderer.visit({
it.text(" ${inputFile}")
}, lastChild)
}
}
}

if (showOutputs) {
FileCollection outputFiles = entryTask.task.outputs.files

if (!outputFiles.isEmpty()) {
renderer.visit({
it.text("${entryTask.task.path}:outputs.files")
}, lastChild)

outputFiles.each {outputFile ->
renderer.visit({
it.text(" ${outputFile}")
}, lastChild)
}
}
}

if (skippingChildren) {
// skip children because depth is exceeded
} else if (!noRepeat || !taskSubtreeAlreadyPrinted) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ class TaskTreeTaskNew extends TaskTreeTask {
super.noRepeat = noRepeat
}

@Option(option = "show-inputs", description = "print task inputs just below task in graph")
void setShowInputs(boolean showInputs) {
super.showInputs = showInputs
}

@Option(option = "show-outputs", description = "print task outputs just below task in graph")
void setShowOutputs(boolean showOutputs) {
super.showOutputs = showOutputs
}

@Option(option = "task-depth", description = "descend at most <depth> levels into each task dependency")
void setTaskDepth(String depth) {
super.taskDepth = depth.toInteger()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ class TaskTreeTaskOld extends TaskTreeTask{
super.noRepeat = noRepeat
}

@Option(option = "show-inputs", description = "print task inputs just below task in graph")
void setShowInputs(boolean showInputs) {
super.showInputs = showInputs
}

@Option(option = "show-outputs", description = "print task outputs just below task in graph")
void setShowOutputs(boolean showOutputs) {
super.showOutputs = showOutputs
}

@Option(option = "task-depth", description = "descend at most <depth> levels into each task dependency")
void setTaskDepth(String depth) {
super.taskDepth = depth.toInteger()
Expand Down

0 comments on commit 874e0a5

Please sign in to comment.