// BuildPkgs builds a list of packages func (b *Builder) BuildPkgs(pkgs []string) []*lex8.Error { for _, p := range pkgs { if _, es := b.prepare(p); es != nil { return es } } g := &dagvis.Graph{b.deps} g = g.Reverse() m, err := dagvis.Layout(g) if err != nil { return lex8.SingleErr(err) } // TODO: save the package dep map nodes := m.SortedNodes() for _, node := range nodes { if b.Verbose { // report progress fmt.Println(node.Name) } pkg := b.pkgs[node.Name] if pkg == nil { panic("package not prepared") } pkg.deps = deps(node) if es := b.build(pkg); es != nil { return es } } return nil }
func build(c *context, pkgs []string) []*lex8.Error { for _, p := range pkgs { if pkg, es := prepare(c, p); es != nil { return es } else if pkg.err != nil { return lex8.SingleErr(pkg.err) } } if c.RunTests { for _, p := range pkgs { c.pkgs[p].runTests = true } } g := &dagvis.Graph{c.deps} g = g.Reverse() m, err := dagvis.Layout(g) if err != nil { return lex8.SingleErr(err) } if c.SaveDeps != nil { c.SaveDeps(m) } nodes := m.SortedNodes() for _, node := range nodes { if c.Verbose { // report progress logln(c, node.Name) } pkg := c.pkgs[node.Name] pkg.deps = deps(node) if es := buildPkg(c, pkg); es != nil { return es } } return nil }
// BuildPkgs builds a list of packages func (b *Builder) BuildPkgs(pkgs []string) []*lex8.Error { for _, p := range pkgs { if _, es := b.prepare(p); es != nil { return es } } if b.RunTests { for _, p := range pkgs { b.pkgs[p].runTests = true } } g := &dagvis.Graph{b.deps} g = g.Reverse() m, err := dagvis.Layout(g) if err != nil { return lex8.SingleErr(err) } if b.SaveDeps != nil { b.SaveDeps(m) } nodes := m.SortedNodes() for _, node := range nodes { if b.Verbose { // report progress b.logln(node.Name) } pkg := b.pkgs[node.Name] pkg.deps = deps(node) if es := b.build(pkg); es != nil { return es } } return nil }