1234567891011121314151617181920212223242526272829303132333435363738 |
- package graph
- import (
- "strings"
- "github.com/docker/docker/engine"
- "github.com/docker/docker/image"
- )
- func (s *TagStore) CmdViz(job *engine.Job) engine.Status {
- images, _ := s.graph.Map()
- if images == nil {
- return engine.StatusOK
- }
- job.Stdout.Write([]byte("digraph docker {\n"))
- var (
- parentImage *image.Image
- err error
- )
- for _, image := range images {
- parentImage, err = image.GetParent()
- if err != nil {
- return job.Errorf("Error while getting parent image: %v", err)
- }
- if parentImage != nil {
- job.Stdout.Write([]byte(" \"" + parentImage.ID + "\" -> \"" + image.ID + "\"\n"))
- } else {
- job.Stdout.Write([]byte(" base -> \"" + image.ID + "\" [style=invis]\n"))
- }
- }
- for id, repos := range s.GetRepoRefs() {
- job.Stdout.Write([]byte(" \"" + id + "\" [label=\"" + id + "\\n" + strings.Join(repos, "\\n") + "\",shape=box,fillcolor=\"paleturquoise\",style=\"filled,rounded\"];\n"))
- }
- job.Stdout.Write([]byte(" base [style=invisible]\n}\n"))
- return engine.StatusOK
- }
|