package daemon import ( "log" "time" "github.com/Masterminds/semver" "github.com/go-flucky/flucky/pkg/config" "github.com/go-flucky/flucky/pkg/daemon" "github.com/spf13/cobra" "github.com/volker-raschek/go-logger/pkg/logger" ) var ( cleanCacheInterval string compression bool configFile *string round float64 temperatureUnit string version *semver.Version ) 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) daemon.SetLogger(logger) daemon.Start(cnf, duration, compression, round, version) }, } func InitCmd(cmd *cobra.Command, cnfFile *string, sversion *semver.Version) { configFile = cnfFile version = sversion 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.5, "Round values. The value 0 deactivates the function") }