2019-06-13 19:25:32 +00:00
package daemon
import (
2019-06-15 13:45:35 +00:00
"log"
2019-06-16 21:15:26 +00:00
"time"
2019-06-15 13:45:35 +00:00
2019-06-15 13:58:41 +00:00
"github.com/go-flucky/flucky/pkg/config"
"github.com/go-flucky/flucky/pkg/daemon"
2019-06-13 19:25:32 +00:00
"github.com/spf13/cobra"
)
2019-06-15 14:42:54 +00:00
var compression bool
2019-06-16 11:00:50 +00:00
var configFile string
2019-06-16 21:15:26 +00:00
var cleanCacheIntervall string
2019-06-13 19:25:32 +00:00
var daemonCmd = & cobra . Command {
Use : "daemon" ,
Short : "Read continuously data from all enabled sensors" ,
Run : func ( cmd * cobra . Command , args [ ] string ) {
2019-06-15 12:25:45 +00:00
// read configuration
2019-06-16 11:00:50 +00:00
cnf , err := config . Read ( configFile )
2019-06-15 13:45:35 +00:00
if err != nil {
log . Fatalln ( err )
}
2019-06-16 21:15:26 +00:00
duration , err := time . ParseDuration ( cleanCacheIntervall )
2019-06-15 13:45:35 +00:00
if err != nil {
2019-06-16 21:15:26 +00:00
log . Fatalf ( "Can not parse clean cache interval into duration time: %v" , err )
}
err = daemon . Start ( cnf , duration , compression )
if err != nil {
log . Fatalln ( err )
2019-06-15 13:45:35 +00:00
}
2019-06-13 19:25:32 +00:00
} ,
}
2019-06-16 11:00:50 +00:00
func InitCmd ( cmd * cobra . Command , cnfFile string ) {
configFile = cnfFile
2019-06-13 19:25:32 +00:00
cmd . AddCommand ( daemonCmd )
2019-06-16 21:15:26 +00:00
daemonCmd . Flags ( ) . BoolVar ( & compression , "compression" , true , "Compress measured values" )
daemonCmd . Flags ( ) . StringVar ( & cleanCacheIntervall , "clean-cache-intervall" , "30m" , "Minute intervall to clean cache and write measured values into logfile" )
2019-06-13 19:25:32 +00:00
}