Skip to content
Snippets Groups Projects
Select Git revision
  • 811cd2727e7a8a04e114d4b57f79d9f183599c60
  • noblogs default
  • noblogs-5.7.1
  • upstream
  • noblogs-5.7
  • noblogs-5.6new
  • upstream5.5.1
  • noblogs28dic
  • upstream28dic
  • noblogs-5.5.1
  • noblogs-5.4.2
  • noblogs-5.4_seconda
  • noblogs-5.4
  • noblogs-7c
  • wp5.2.3p3
  • mergedbconf
  • noblogs-5.7.1
  • noblogs.5.7.0p1
  • noblogs-5.7.0
  • noblogs-5.6p3
  • noblogs5.6p2
  • noblogs-5.6p1
  • noblogs-5.6
  • noblogs-5.4.2p1
  • noblogs-5.4.2
  • noblogs-5.4.1
  • noblogs-5.4
  • noblogs-p5.4
  • noblogs-5.3.2p2
  • noblogs-5.3.2p1
  • noblogs-5.3.2
  • noblogs-5.3
  • noblogs-5.2.3p4
  • noblogs-5.2.3p3
  • noblogs-5.2.3p2
  • noblogs-5.2.3p1
36 results

customize-base.js

Blame
  • main.go 1.00 KiB
    package main
    
    import (
    	"flag"
    	"io/ioutil"
    	"log"
    	"os"
    	"os/exec"
    	"strings"
    
    	floatschema "git.autistici.org/ai3/tools/float-dashboard/schema/float"
    	"git.autistici.org/ai3/tools/float-dashboard/schema/graph"
    	"gopkg.in/yaml.v3"
    )
    
    var service = flag.String("service", "", "filter this service only")
    
    func main() {
    	log.SetFlags(0)
    	flag.Parse()
    
    	data, err := ioutil.ReadFile(flag.Arg(0))
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	var svcmap map[string]*floatschema.Service
    	if err := yaml.Unmarshal(data, &svcmap); err != nil {
    		log.Fatal(err)
    	}
    
    	var dot string
    
    	g := graph.ServiceGraph(svcmap)
    	if *service != "" {
    		g = g.Filter(graph.FilterEdgeByService(*service))
    		dot = g.Render(
    			graph.StyleNodeByService(*service),
    			graph.StyleEdgeByService(*service),
    		)
    	} else {
    		dot = g.Render(nil, nil)
    	}
    
    	// Run graphviz to render to SVG.
    	cmd := exec.Command("dot", "-Tsvg")
    	cmd.Stdin = strings.NewReader(dot)
    	cmd.Stderr = os.Stderr
    	cmd.Stdout = os.Stdout
    	if err := cmd.Run(); err != nil {
    		log.Fatal(err)
    	}
    }