package daemon import ( "log" "time" "github.com/go-flucky/flucky/pkg/config" "github.com/go-flucky/flucky/pkg/daemon" "github.com/go-flucky/flucky/pkg/logger" "github.com/go-flucky/flucky/pkg/sensor" "github.com/spf13/cobra" ) var cleanCacheInterval string var compression bool var configFile string var round float64 var temperatureUnit string var daemonCmd = &cobra.Command{ Use: "daemon", Short: "Read continuously data from all enabled sensors", Run: func(cmd *cobra.Command, args []string) { // read configuration cnf, err := config.Read(configFile) if err != nil { log.Fatalln(err) } duration, err := time.ParseDuration(cleanCacheInterval) if err != nil { log.Fatalf("Can not parse clean cache interval into duration time: %v", err) } logger := logger.NewDefaultLogger(logger.LogLevelDebug, false) measurementUnit, err := sensor.SelectTemperatureMeasurementUnit(temperatureUnit) if err != nil { log.Fatalf("Can not parse temperature unit: %v", temperatureUnit) } daemon.Start(cnf, duration, compression, measurementUnit, round, logger) }, } func InitCmd(cmd *cobra.Command, cnfFile string) { configFile = cnfFile cmd.AddCommand(daemonCmd) daemonCmd.Flags().BoolVar(&compression, "compression", true, "Compress measured values") daemonCmd.Flags().StringVar(&cleanCacheInterval, "clean-cache-interval", "5m", "Minute intervall to clean cache and write measured values into logfile") daemonCmd.Flags().Float64Var(&round, "round", 0.25, "Round values. The value 0 deactivates the function") daemonCmd.Flags().StringVar(&temperatureUnit, "temperature-unit", "celsius", "Temperature unit") }