fix: configuration pkg

This commit is contained in:
2019-02-17 18:23:59 +01:00
parent 60fa83244e
commit c437127531
18 changed files with 596 additions and 420 deletions

View File

@ -1,15 +1,11 @@
package cmd
import (
"git.cryptic.systems/fh-trier/go-flucky/cmd/config"
"git.cryptic.systems/fh-trier/go-flucky/cmd/humidity"
"git.cryptic.systems/fh-trier/go-flucky/cmd/remote"
"git.cryptic.systems/fh-trier/go-flucky/cmd/sensor"
"git.cryptic.systems/fh-trier/go-flucky/cmd/temperature"
"github.com/spf13/cobra"
)
var configDir string
var cfg string
var rootCmd = &cobra.Command{
Use: "flucky",
@ -20,13 +16,12 @@ var rootCmd = &cobra.Command{
func Execute(version string) {
rootCmd.Version = version
rootCmd.PersistentFlags().StringVarP(&configDir, "config", "c", "/etc/flucky", "The base directory for all configuration files.")
rootCmd.PersistentFlags().StringVar(&cfg, "config", "/etc/flucky/config.json", "Config file")
config.InitCmd(rootCmd, configDir)
humidity.InitCmd(rootCmd, configDir)
remote.InitCmd(rootCmd, configDir)
sensor.InitCmd(rootCmd, configDir)
temperature.InitCmd(rootCmd, configDir)
// humidity.InitCmd(rootCmd, configDir)
remote.InitCmd(rootCmd, cfg)
// sensor.InitCmd(rootCmd, configDir)
// temperature.InitCmd(rootCmd, configDir)
rootCmd.Execute()
}

View File

@ -1,28 +0,0 @@
package config
import (
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
var configDir string
var configCmd = &cobra.Command{
Use: "config",
Short: "Manage Configuration",
Args: cobra.ExactArgs(2),
Run: func(cmd *cobra.Command, args []string) {
if args[0] == "device.name" {
config.DeviceName(args[1], configDir)
} else if args[0] == "device.location" {
config.DeviceLocation(args[1], configDir)
}
},
}
func InitCmd(cmd *cobra.Command, c string) {
configDir = c
cmd.AddCommand(configCmd)
}

View File

@ -1,28 +0,0 @@
package config
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
var force bool
var logDir string
var createConfigCmd = &cobra.Command{
Use: "create",
Short: "create",
Run: func(cmd *cobra.Command, args []string) {
if err := config.Create(configDir, logDir, force); err != nil {
log.Fatal(err)
}
},
}
func init() {
configCmd.AddCommand(createConfigCmd)
createConfigCmd.Flags().BoolVarP(&force, "force", "f", false, "Force the creation of a new configuration")
createConfigCmd.Flags().StringVarP(&logDir, "log-dir", "l", "/var/log/flucky", "Directory for logfiles")
}

View File

@ -3,8 +3,7 @@ package remote
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/remote"
"git.cryptic.systems/fh-trier/go-flucky/pkg/types"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
@ -16,19 +15,35 @@ var addRemoteCmd = &cobra.Command{
Args: cobra.ExactArgs(2),
Run: func(cmd *cobra.Command, args []string) {
remoteObject := types.Remote{
// 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,
}
if err := remote.Add(&remoteObject, configDir); err != nil {
log.Fatal(err)
// // 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, "enabled", "e", true, "Enable Remote Link")
addRemoteCmd.Flags().BoolVarP(&enabled, "enable", "e", true, "Enable")
}

View File

@ -3,7 +3,7 @@ package remote
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/remote"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
@ -13,9 +13,24 @@ var disableRemoteCmd = &cobra.Command{
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
if err := remote.Disable(args[0], configDir); err != nil {
log.Fatal(err)
// 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)
}
},
}

View File

@ -3,7 +3,7 @@ package remote
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/remote"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
@ -13,8 +13,22 @@ var enableRemoteCmd = &cobra.Command{
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
if err := remote.Enable(args[0], configDir); err != nil {
log.Fatal(err)
// 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)
}
},
}

View File

@ -4,7 +4,7 @@ import (
"log"
"os"
"git.cryptic.systems/fh-trier/go-flucky/pkg/remote"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
@ -16,14 +16,26 @@ var listRemoteCmd = &cobra.Command{
Aliases: []string{"ls"},
Run: func(cmd *cobra.Command, args []string) {
if err := remote.Print(os.Stdout, configDir, quiet); err != nil {
log.Fatal(err)
// read configuration
fc, err := config.Read(cfg)
if err != nil {
log.Fatalln(err)
}
// print all configured remote addresses on stdout
err = fc.PrintRemotes(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)
listRemoteCmd.Flags().BoolVarP(&quiet, "quiet", "q", false, "List only sensor id's")
}

View File

@ -4,15 +4,15 @@ import (
"github.com/spf13/cobra"
)
var configDir string
var cfg string
var remoteCmd = &cobra.Command{
Use: "remote",
Short: "Manage Remote Server",
}
func InitCmd(cmd *cobra.Command, cnf string) {
configDir = cnf
func InitCmd(cmd *cobra.Command, config string) {
cfg = config
cmd.AddCommand(remoteCmd)
}

View File

@ -3,32 +3,37 @@ package remote
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/remote"
"git.cryptic.systems/fh-trier/go-flucky/pkg/config"
"github.com/spf13/cobra"
)
var all bool
var rmRemoteCmd = &cobra.Command{
Use: "rm",
Short: "Remove Remote Server",
Aliases: []string{"remove"},
Args: cobra.RangeArgs(0, 1),
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
if all {
if err := remote.RemoveAll(configDir); err != nil {
log.Fatal(err)
}
} else {
if err := remote.Remove(args[0], configDir); err != nil {
log.Fatal(err)
}
// 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)
rmRemoteCmd.Flags().BoolVarP(&all, "all", "a", false, "Select all remote connections")
}

View File

@ -1,27 +0,0 @@
package remote
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/httpcall"
"github.com/spf13/cobra"
)
var force bool
var syncRemoteCmd = &cobra.Command{
Use: "sync",
Aliases: []string{"synchronize"},
Short: "Synchronise Device Values with Remote Servers",
Run: func(cmd *cobra.Command, args []string) {
if err := httpcall.SyncDevice(configDir, force); err != nil {
log.Fatal(err)
}
},
}
func init() {
remoteCmd.AddCommand(syncRemoteCmd)
syncRemoteCmd.Flags().BoolVarP(&force, "force", "f", false, "Include disabled remote links")
}

View File

@ -1,9 +1,6 @@
package sensor
import (
"log"
"git.cryptic.systems/fh-trier/go-flucky/pkg/sensor"
"github.com/spf13/cobra"
)
@ -15,9 +12,7 @@ var addSensorCmd = &cobra.Command{
Short: "Add Sensor",
Args: cobra.ExactArgs(3),
Run: func(cmd *cobra.Command, args []string) {
if err := sensor.Add(&args[0], &sensorLocation, &args[1], &wireID, &args[2], wirePath, configDir, &enabled); err != nil {
log.Fatal(err)
}
},
}