diff --git a/cmd/graph.go b/cmd/graph.go index 163e1479d..279e2bf3e 100644 --- a/cmd/graph.go +++ b/cmd/graph.go @@ -53,7 +53,8 @@ func doGraph(opts GraphOpts) error { } logger.Debugf("Generate DAG -- Done") - graph.Print() - + logger.Debugf("Print DAG") + graph.Print(opts.BuildPath) + logger.Debugf("Print DAG -- Done") return nil } diff --git a/pkg/dag/dag.go b/pkg/dag/dag.go index af869a1d5..ee26fe105 100644 --- a/pkg/dag/dag.go +++ b/pkg/dag/dag.go @@ -13,11 +13,13 @@ type DAG struct { nodes []*Node // Root nodes of the graph. } -func (d *DAG) Print() { - for _, t := range d.nodes { - if err := DefaultTree.WithRoot(t).Render(); err != nil { - logger.Fatalf(err.Error()) - } +func (d *DAG) Print(name string) { + rootNode := &Node{ + Image: &Image{Name: name}, + children: d.nodes, + } + if err := DefaultTree.WithRoot(rootNode).Render(); err != nil { + logger.Fatalf(err.Error()) } } diff --git a/pkg/dag/printer.go b/pkg/dag/printer.go index 5eabb456b..b7211112e 100644 --- a/pkg/dag/printer.go +++ b/pkg/dag/printer.go @@ -114,12 +114,12 @@ func walkOverTree(nodes []*Node, printer TreePrinter, prefix string) string { if len(node.Children()) == 0 { // if there are no children ret += prefix + printer.TreeStyle.Sprint(printer.TopRightDownString) + strings.Repeat(printer.TreeStyle.Sprint(printer.HorizontalString), printer.Indent) + - printer.TextStyle.Sprint(node.Image.Name) + "\n" + printer.TextStyle.Sprint(node.Image.ShortName) + "\n" } else { // if there are children ret += prefix + printer.TreeStyle.Sprint(printer.TopRightDownString) + strings.Repeat(printer.TreeStyle.Sprint(printer.HorizontalString), printer.Indent-1) + printer.TreeStyle.Sprint(printer.RightDownLeftString) + - printer.TextStyle.Sprint(node.Image.Name) + "\n" + printer.TextStyle.Sprint(node.Image.ShortName) + "\n" ret += walkOverTree(node.Children(), printer, prefix+printer.TreeStyle.Sprint(printer.VerticalString)+strings.Repeat(" ", printer.Indent-1)) } @@ -127,12 +127,12 @@ func walkOverTree(nodes []*Node, printer TreePrinter, prefix string) string { if len(node.Children()) == 0 { // if there are no children ret += prefix + printer.TreeStyle.Sprint(printer.TopRightCornerString) + strings.Repeat(printer.TreeStyle.Sprint(printer.HorizontalString), printer.Indent) + - printer.TextStyle.Sprint(node.Image.Name) + "\n" + printer.TextStyle.Sprint(node.Image.ShortName) + "\n" } else { // if there are children ret += prefix + printer.TreeStyle.Sprint(printer.TopRightCornerString) + strings.Repeat(printer.TreeStyle.Sprint(printer.HorizontalString), printer.Indent-1) + printer.TreeStyle.Sprint(printer.RightDownLeftString) + - printer.TextStyle.Sprint(node.Image.Name) + "\n" + printer.TextStyle.Sprint(node.Image.ShortName) + "\n" ret += walkOverTree(node.Children(), printer, prefix+strings.Repeat(" ", printer.Indent)) }