// // dolmetschctl // // // Copyright (C) 2019 Christian Pointner // // This file is part of dolmetschctl. // // dolmetschctl is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // dolmetschctl is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with dolmetschctl. If not, see . // package main import ( "log" "os" "time" "github.com/gorilla/websocket" "spreadspace.org/dolmetschctl/pkg/controller" // "spreadspace.org/dolmetschctl/pkg/types" ) func run(c *controller.Controller, ws *websocket.Conn) error { ch := make(chan controller.Event, 100) c.Subscribe(ch) for { select { case ev := <-ch: log.Printf("got controller event: %v", ev) } } return nil } func main() { log.Println("hello world.") c, err := controller.NewController(controller.Config{Dev: "dolmetsch controller"}) if err != nil { log.Printf("Error opening the controller: %v", err) os.Exit(1) } defer c.Shutdown() if err = c.Init(); err != nil { log.Printf("Error initializeing the controller: %v", err) os.Exit(1) } log.Printf("controller successfully initialized!") for { ws, _, err := websocket.DefaultDialer.Dial("ws://127.0.0.1:8234/api/v1/socket", nil) if err != nil { log.Printf("Error connecting to daemon: %v", err) } else { err := run(c, ws) log.Printf("run() returned: %v", err) } log.Printf("will retry in one second...") time.Sleep(time.Second) } log.Printf("exiting.") }