package daemon import ( "fmt" "github.com/go-flucky/flucky/cmd/internal" "github.com/go-flucky/flucky/pkg/config" "github.com/go-flucky/flucky/pkg/daemon" "github.com/spf13/cobra" ) var ( cachedMeasuredValues uint compression bool round float64 temperatureUnit string ) // InitCmd initialize all daemon subcommands func InitCmd(cmd *cobra.Command) error { daemonCmd := &cobra.Command{ Use: "daemon", Short: "Read continuously data from all enabled sensors", Example: "flucky daemon", RunE: run, } daemonCmd.Flags().BoolVar(&compression, "compression", true, "Compress measured values") daemonCmd.Flags().UintVar(&cachedMeasuredValues, "cached-values", 500, "Number of cached values before saveing into the storage endpoint") daemonCmd.Flags().Float64Var(&round, "round", 0.5, "Round values. The value 0 deactivates the function") cmd.AddCommand(daemonCmd) return nil } func run(cmd *cobra.Command, args []string) error { configFile, err := cmd.Flags().GetString("config") if err != nil { return fmt.Errorf("No config file defined: %v", err) } logLevel, err := cmd.Flags().GetString("loglevel") if err != nil { return fmt.Errorf("No loglevel defined: %v", err) } flogger := internal.InitializeLogger(logLevel) daemon.SetLogger(flogger) cnf, err := config.Read(configFile) if err != nil { return err } return daemon.Start(cnf, cachedMeasuredValues, compression, round) }