fix: breaking changes
changes: - remove remote operations - add function to write measured values into a channel - add get humidity sensors from config - add get temperature sensors from config - remove FileLogger - exclude some functions from pkf into internal
This commit is contained in:
28
cmd/cmd.go
28
cmd/cmd.go
@ -5,11 +5,8 @@ import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
lg "github.com/volker-raschek/flucky/cmd/logger"
|
||||
"github.com/volker-raschek/flucky/cmd/remote"
|
||||
"github.com/volker-raschek/flucky/cmd/sensor"
|
||||
"github.com/volker-raschek/flucky/cmd/temperature"
|
||||
"github.com/volker-raschek/flucky/pkg/logger"
|
||||
"github.com/volker-raschek/flucky/pkg/types"
|
||||
|
||||
uuid "github.com/satori/go.uuid"
|
||||
@ -17,7 +14,7 @@ import (
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var cfg string
|
||||
var configPath string
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "flucky",
|
||||
@ -25,28 +22,21 @@ var rootCmd = &cobra.Command{
|
||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) error {
|
||||
|
||||
// check if config file exists
|
||||
if _, err := os.Stat(cfg); os.IsNotExist(err) {
|
||||
if _, err := os.Stat(configPath); os.IsNotExist(err) {
|
||||
hostname, err := os.Hostname()
|
||||
if err != nil {
|
||||
return fmt.Errorf("Can not locate the hostname: %v", err)
|
||||
}
|
||||
|
||||
logfiles := make(map[logger.LogValue][]string)
|
||||
logfiles[logger.LogHumidity] = []string{"/var/log/flucky/humidity.json"}
|
||||
logfiles[logger.LogTemperature] = []string{"/var/log/flucky/temperature.json"}
|
||||
|
||||
fc := config.FluckyConfig{
|
||||
cnf := config.Configuration{
|
||||
Device: &types.Device{
|
||||
DeviceID: uuid.NewV4().String(),
|
||||
DeviceName: hostname,
|
||||
CreationDate: time.Now(),
|
||||
},
|
||||
FileLogger: &logger.FileLogger{
|
||||
LogFiles: logfiles,
|
||||
},
|
||||
}
|
||||
|
||||
err = config.Write(&fc, cfg)
|
||||
err = config.Write(&cnf, configPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -60,13 +50,9 @@ var rootCmd = &cobra.Command{
|
||||
func Execute(version string) {
|
||||
rootCmd.Version = version
|
||||
|
||||
rootCmd.PersistentFlags().StringVar(&cfg, "config", "/etc/flucky/config.json", "Config file")
|
||||
|
||||
lg.InitCmd(rootCmd, cfg)
|
||||
rootCmd.PersistentFlags().StringVar(&configPath, "config", "/etc/flucky/config.json", "Config file")
|
||||
// humidity.InitCmd(rootCmd, configDir)
|
||||
remote.InitCmd(rootCmd, cfg)
|
||||
sensor.InitCmd(rootCmd, cfg)
|
||||
temperature.InitCmd(rootCmd, cfg)
|
||||
|
||||
sensor.InitCmd(rootCmd, configPath)
|
||||
temperature.InitCmd(rootCmd, configPath)
|
||||
rootCmd.Execute()
|
||||
}
|
||||
|
22
cmd/daemon/daemon.go
Normal file
22
cmd/daemon/daemon.go
Normal file
@ -0,0 +1,22 @@
|
||||
package daemon
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var configDir string
|
||||
|
||||
var daemonCmd = &cobra.Command{
|
||||
Use: "daemon",
|
||||
Short: "Read continuously data from all enabled sensors",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func InitCmd(cmd *cobra.Command, cnf string) {
|
||||
configDir = cnf
|
||||
|
||||
cmd.AddCommand(daemonCmd)
|
||||
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/volker-raschek/flucky/pkg/logger"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var enabled bool
|
||||
|
||||
var addLoggerCmd = &cobra.Command{
|
||||
Use: "add",
|
||||
Short: "Add internal logger",
|
||||
Args: cobra.ExactArgs(2),
|
||||
Aliases: []string{"append"},
|
||||
Example: "flucky logger add temperature /var/log/flucky/temperature.log",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// loggertype, err := logger.StringToLoggerType(args[0])
|
||||
// if err != nil {
|
||||
// log.Fatalln(err)
|
||||
// }
|
||||
|
||||
logvalue, err := logger.StringToLogValue(args[0])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
err = fc.AddLogFile(args[1], logvalue)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
loggerCmd.AddCommand(addLoggerCmd)
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/cli"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var quiet bool
|
||||
|
||||
var listLoggerCmd = &cobra.Command{
|
||||
Use: "ls",
|
||||
Short: "List internal Loggers",
|
||||
Aliases: []string{"list"},
|
||||
Example: "flucky logger ls",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// print all configured remote addresses on stdout
|
||||
cli.PrintLoggers(fc, os.Stdout)
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
loggerCmd.AddCommand(listLoggerCmd)
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var cfg string
|
||||
|
||||
var loggerCmd = &cobra.Command{
|
||||
Use: "logger",
|
||||
Short: "Manage internal logger",
|
||||
}
|
||||
|
||||
func InitCmd(cmd *cobra.Command, config string) {
|
||||
cfg = config
|
||||
|
||||
cmd.AddCommand(loggerCmd)
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var rmLoggerCmd = &cobra.Command{
|
||||
Use: "rm",
|
||||
Short: "Remove internal logger",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Aliases: []string{"remove"},
|
||||
Example: "flucky logger rm /var/log/flucky/temperature.log",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
err = fc.RemoveLogFile(args[0])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
loggerCmd.AddCommand(rmLoggerCmd)
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var enabled bool
|
||||
|
||||
var addRemoteCmd = &cobra.Command{
|
||||
Use: "add",
|
||||
Short: "Add Remote Server",
|
||||
Args: cobra.ExactArgs(2),
|
||||
Aliases: []string{"append"},
|
||||
Example: "flucky remote add origin https://example.local",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// create new remote struct
|
||||
remote := config.Remote{
|
||||
Name: args[0],
|
||||
Address: args[1],
|
||||
Enabled: enabled,
|
||||
}
|
||||
|
||||
// // add remote entry to list
|
||||
err = fc.AddRemote(&remote)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(addRemoteCmd)
|
||||
addRemoteCmd.Flags().BoolVarP(&enabled, "enable", "e", true, "Enable")
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var disableRemoteCmd = &cobra.Command{
|
||||
Use: "disable",
|
||||
Short: "Disable Remove Server",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Example: "flucky remote disable origin",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// disnable remote address
|
||||
err = fc.DisableRemote(args[0])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(disableRemoteCmd)
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var enableRemoteCmd = &cobra.Command{
|
||||
Use: "enable",
|
||||
Short: "Enable Remove Server",
|
||||
Args: cobra.ExactArgs(1),
|
||||
Example: "flucky remote enable origin",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// enable remote address
|
||||
err = fc.EnableRemote(args[0])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(enableRemoteCmd)
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/cli"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var quiet bool
|
||||
|
||||
var listRemoteCmd = &cobra.Command{
|
||||
Use: "ls",
|
||||
Short: "List Remove Servers",
|
||||
Aliases: []string{"list"},
|
||||
Example: "flucky remote ls",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// print all configured remote addresses on stdout
|
||||
err = cli.PrintRemotes(fc, os.Stdout)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(listRemoteCmd)
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var cfg string
|
||||
|
||||
var remoteCmd = &cobra.Command{
|
||||
Use: "remote",
|
||||
Short: "Manage Remote Server",
|
||||
}
|
||||
|
||||
func InitCmd(cmd *cobra.Command, config string) {
|
||||
cfg = config
|
||||
|
||||
cmd.AddCommand(remoteCmd)
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var rmRemoteCmd = &cobra.Command{
|
||||
Use: "rm",
|
||||
Short: "Remove Remote Server",
|
||||
Aliases: []string{"remove"},
|
||||
Args: cobra.ExactArgs(1),
|
||||
Example: "flucky remote rm origin",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// add remote entry to list
|
||||
err = fc.RemoveRemote(args[0])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(rmRemoteCmd)
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package remote
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var renameRemoteCmd = &cobra.Command{
|
||||
Use: "rename",
|
||||
Short: "Rename Remote Server",
|
||||
Args: cobra.ExactArgs(2),
|
||||
Example: "flucky remote rename origin slave",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// rename remote address
|
||||
err = fc.RenameRemote(args[0], args[1])
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// save new configuration
|
||||
err = config.Write(fc, cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
remoteCmd.AddCommand(renameRemoteCmd)
|
||||
}
|
28
cmd/temperature/list.go
Normal file
28
cmd/temperature/list.go
Normal file
@ -0,0 +1,28 @@
|
||||
package temperature
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var listTemperatureCmd = &cobra.Command{
|
||||
Use: "list",
|
||||
Short: "print temperatures",
|
||||
Example: fmt.Sprintf("flucky temperature logs"),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
// fc, err := config.Read(cnfPath)
|
||||
// if err != nil {
|
||||
// list.Fatalln(err)
|
||||
// }
|
||||
|
||||
//cli.PrintTemperatures(temperatures, fc, os.Stdout)
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
temperatureCmd.AddCommand(listTemperatureCmd)
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package temperature
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/volker-raschek/flucky/pkg/cli"
|
||||
"github.com/volker-raschek/flucky/pkg/config"
|
||||
)
|
||||
|
||||
var logTemperatureCmd = &cobra.Command{
|
||||
Use: "log",
|
||||
Short: "print temperature logs",
|
||||
Example: fmt.Sprintf("flucky temperature logs"),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
temperatures, err := fc.FileLogger.GetTemperatures(nil, nil, args)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
cli.PrintTemperatures(temperatures, fc, os.Stdout)
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
temperatureCmd.AddCommand(logTemperatureCmd)
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
package temperature
|
||||
|
||||
// import (
|
||||
// "log"
|
||||
|
||||
// "github.com/spf13/cobra"
|
||||
// )
|
||||
|
||||
// var pushTemperatureCmd = &cobra.Command{
|
||||
// Use: "push",
|
||||
// Short: "push temperature from sensor to remote servers",
|
||||
// Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// if err := temperature.Push(configDir); err != nil {
|
||||
// log.Fatal(err)
|
||||
// }
|
||||
// },
|
||||
// }
|
||||
|
||||
// func init() {
|
||||
// temperatureCmd.AddCommand(pushTemperatureCmd)
|
||||
// }
|
@ -20,16 +20,13 @@ var readTemperatureCmd = &cobra.Command{
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
|
||||
// read configuration
|
||||
fc, err := config.Read(cfg)
|
||||
cnf, err := config.Read(cnfPath)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// fetch all temperature sensors
|
||||
temperatureSensors, err := fc.GetTemperatureSensors(args)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
temperatureSensors := cnf.GetTemperatureSensors()
|
||||
|
||||
// read temperature from sensors
|
||||
temperatures, err := sensor.ReadTemperatures(temperatureSensors)
|
||||
@ -38,14 +35,7 @@ var readTemperatureCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
// print temperatures on stdout
|
||||
cli.PrintTemperatures(temperatures, fc, os.Stdout)
|
||||
|
||||
if logs {
|
||||
err = fc.FileLogger.LogTemperatures(temperatures)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
cli.PrintTemperatures(temperatures, cnf, os.Stdout)
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var cfg string
|
||||
var cnfPath string
|
||||
|
||||
var temperatureCmd = &cobra.Command{
|
||||
Use: "temperature",
|
||||
@ -15,8 +15,8 @@ var temperatureCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
// Execute a
|
||||
func InitCmd(cmd *cobra.Command, config string) {
|
||||
cfg = config
|
||||
func InitCmd(cmd *cobra.Command, configPath string) {
|
||||
cnfPath = configPath
|
||||
|
||||
cmd.AddCommand(temperatureCmd)
|
||||
|
||||
|
Reference in New Issue
Block a user