src.dualinventive.com/go/devsim/cmd/devsimd/client/main.go

67 lines
1.4 KiB
Go

package main
import (
"flag"
"log"
"src.dualinventive.com/go/devsim/daemon"
"src.dualinventive.com/go/devsim/simulator"
)
var (
host = flag.String("host", "127.0.0.1:3600", "gRPC daemon host address")
)
const repositoryURIZKL3000RC = "git@src.dualinventive.com:simulator/zkl-3000-rc.git"
func createSimulators(dsc simulator.Service) {
for i := 0; i < 10; i++ {
info, err := dsc.Add(repositoryURIZKL3000RC, "v0.0.2")
if err != nil {
log.Println("simulator created failed", err)
}
err = dsc.Start(info.DeviceUID())
if err != nil {
log.Println("unable to start simulator", err)
}
}
}
func listSimulators(dss simulator.Service) []simulator.Simulator {
log.Println("simulators:")
simulators := dss.List()
for _, sim := range simulators {
log.Printf("\t--- %+v ---\n", sim.DeviceUID())
log.Printf("\t%+v\n", sim.Name())
log.Printf("\t%+v\n", sim.Author())
log.Printf("\t%+v\n", sim.Version())
}
return simulators
}
func main() {
flag.Parse()
client, err := daemon.NewClient(*host)
if err != nil {
log.Fatal(err)
}
err = client.Repository.Add(repositoryURIZKL3000RC)
if err != nil {
log.Println("repository", repositoryURIZKL3000RC, err)
}
simulators := listSimulators(client.Simulator)
if len(simulators) == 0 {
createSimulators(client.Simulator)
}
// Repositories info and remove
log.Println("repositories:")
for _, repo := range client.Repository.List() {
log.Println("\t", repo.URI())
}
}