From fc8c5fdce62fb229202659408798a7b6c98f6e8b Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:55 +0800 Subject: --- cli/internal/util/graph.go | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 cli/internal/util/graph.go (limited to 'cli/internal/util/graph.go') diff --git a/cli/internal/util/graph.go b/cli/internal/util/graph.go deleted file mode 100644 index 89de18c..0000000 --- a/cli/internal/util/graph.go +++ /dev/null @@ -1,35 +0,0 @@ -package util - -import ( - "fmt" - "strings" - - "github.com/pyr-sh/dag" -) - -// ValidateGraph checks that a given DAG has no cycles and no self-referential edges. -// We differ from the underlying DAG Validate method in that we allow multiple roots. -func ValidateGraph(graph *dag.AcyclicGraph) error { - // We use Cycles instead of Validate because - // our DAG has multiple roots (entrypoints). - // Validate mandates that there is only a single root node. - cycles := graph.Cycles() - if len(cycles) > 0 { - cycleLines := make([]string, len(cycles)) - for i, cycle := range cycles { - vertices := make([]string, len(cycle)) - for j, vertex := range cycle { - vertices[j] = vertex.(string) - } - cycleLines[i] = "\t" + strings.Join(vertices, ",") - } - return fmt.Errorf("cyclic dependency detected:\n%s", strings.Join(cycleLines, "\n")) - } - - for _, e := range graph.Edges() { - if e.Source() == e.Target() { - return fmt.Errorf("%s depends on itself", e.Source()) - } - } - return nil -} -- cgit v1.2.3-70-g09d2