package daemon import ( "fmt" "os" "os/signal" "syscall" "github.com/volker-raschek/flucky/pkg/config" "github.com/volker-raschek/flucky/pkg/sensor" "github.com/volker-raschek/flucky/pkg/types" ) // Start the daemon func Start(cnf *config.FluckyConfig) error { interrupt := make(chan os.Signal, 1) signal.Notify(interrupt, os.Interrupt, os.Kill, syscall.SIGTERM) humidityChannel := make(chan *types.Humidity) temperatureChannel := make(chan *types.Temperature) go sensor.ReadHumiditiesContinuously(humiditySensors, humidityChannel) go sensor.ReadTemperaturesContinuously(temperatureSensors, temperatureChannel) for { select { case killSignal := <-interrupt: return fmt.Errorf("Daemon was interruped by system signal %v", killSignal) } } }