From 29dbb687c03c7701c7d10e42fa73526ffdb9ee60 Mon Sep 17 00:00:00 2001 From: andig Date: Wed, 26 Jul 2023 21:00:18 +0200 Subject: [PATCH] cmd/vehicle: error if vehicle creation has failed (#9130) --- cmd/vehicle.go | 9 +++++++++ vehicle/wrapper/wrapper.go | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/cmd/vehicle.go b/cmd/vehicle.go index 642306f54..ffaa1bb15 100644 --- a/cmd/vehicle.go +++ b/cmd/vehicle.go @@ -6,6 +6,7 @@ import ( "github.com/evcc-io/evcc/api" "github.com/spf13/cobra" + "golang.org/x/exp/maps" ) // vehicleCmd represents the vehicle command @@ -52,9 +53,17 @@ func runVehicle(cmd *cobra.Command, args []string) { if err != nil { log.FATAL.Fatal(err) } + vehicles = map[string]api.Vehicle{name: vehicle} } + // check single vehicle for error + if len(vehicles) == 1 { + if err, ok := maps.Values(vehicles)[0].(error); ok { + fatal(err) + } + } + var flagUsed bool for _, v := range vehicles { if cmd.Flags().Lookup(flagWakeup).Changed { diff --git a/vehicle/wrapper/wrapper.go b/vehicle/wrapper/wrapper.go index f303668f9..4f42c9f83 100644 --- a/vehicle/wrapper/wrapper.go +++ b/vehicle/wrapper/wrapper.go @@ -48,6 +48,11 @@ func New(name string, other map[string]interface{}, err error) api.Vehicle { return v } +// Error returns the initialization error +func (v *Wrapper) Error() string { + return v.err.Error() +} + var _ api.Vehicle = (*Wrapper)(nil) // Title implements the api.Vehicle interface