diff --git a/cmd/fhome/commands.go b/cmd/fhome/commands.go index b061245..de93bef 100644 --- a/cmd/fhome/commands.go +++ b/cmd/fhome/commands.go @@ -60,6 +60,8 @@ var configCommand = cli.Command{ return fmt.Errorf("cannot use both --system and --user") } + config := loadConfig() + client, err := highlevel.Connect(ctx, config, nil) if err != nil { return fmt.Errorf("failed to create api client: %v", err) @@ -138,6 +140,8 @@ var eventCommand = cli.Command{ Name: "watch", Usage: "Print all incoming messages", Action: func(ctx context.Context, c *cli.Command) error { + config := loadConfig() + client, err := highlevel.Connect(ctx, config, nil) if err != nil { return fmt.Errorf("failed to create api client: %v", err) @@ -180,6 +184,8 @@ var objectCommand = cli.Command{ return fmt.Errorf("object not specified") } + config := loadConfig() + client, err := highlevel.Connect(ctx, config, nil) if err != nil { return fmt.Errorf("failed to create api client: %v", err) @@ -232,6 +238,7 @@ var objectCommand = cli.Command{ } }, ShellComplete: func(ctx context.Context, cmd *cli.Command) { + config := loadConfig() client, err := highlevel.Connect(ctx, config, nil) if err != nil { panic(err) @@ -264,6 +271,8 @@ var objectCommand = cli.Command{ return fmt.Errorf("invalid value: %v", err) } + config := loadConfig() + client, err := highlevel.Connect(ctx, config, nil) if err != nil { return fmt.Errorf("failed to create api client: %v", err) diff --git a/cmd/fhome/main.go b/cmd/fhome/main.go index 6442bc1..4846d17 100644 --- a/cmd/fhome/main.go +++ b/cmd/fhome/main.go @@ -17,8 +17,6 @@ import ( "github.com/urfave/cli/v3" ) -var config *highlevel.Config - // This is set by GoReleaser, see https://goreleaser.com/cookbooks/using-main.version var version = "dev" @@ -82,7 +80,7 @@ func main() { } } -func loadConfig() { +func loadConfig() *highlevel.Config { k := koanf.New(".") p := "/etc/fhome/config.toml" @@ -100,7 +98,7 @@ func loadConfig() { slog.Debug("loaded config file", slog.String("path", p)) } - config = &highlevel.Config{ + return &highlevel.Config{ Email: k.MustString("FHOME_EMAIL"), Password: k.MustString("FHOME_CLOUD_PASSWORD"), ResourcePassword: k.MustString("FHOME_RESOURCE_PASSWORD"),