diff options
author | Sean E. Russell <ser@ser1.net> | 2020-02-20 19:26:34 -0600 |
---|---|---|
committer | Sean E. Russell <ser@ser1.net> | 2020-02-20 19:26:34 -0600 |
commit | af40172604692131386a04d7d9f59435e6974983 (patch) | |
tree | b52a89f8343c866f193c380a5aa428aa9f5deb67 /widgets/battery.go | |
parent | 7b09a00230e059129e010039a159ef9ce7aecc11 (diff) | |
parent | cbad9c124ed077c9d9c0fe1abb258edaddb7df0b (diff) |
Merge branch 'master' into v3.4.x
Diffstat (limited to 'widgets/battery.go')
-rw-r--r-- | widgets/battery.go | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/widgets/battery.go b/widgets/battery.go index fb28971..b47cac4 100644 --- a/widgets/battery.go +++ b/widgets/battery.go @@ -73,8 +73,25 @@ func (b *BatteryWidget) Scale(i int) { func (self *BatteryWidget) update() { batteries, err := battery.GetAll() if err != nil { - log.Printf("failed to get battery info: %v", err) - return + switch errt := err.(type) { + case battery.ErrFatal: + log.Printf("fatal error fetching battery info: %v", err) + return + case battery.Errors: + batts := make([]*battery.Battery, 0) + for i, e := range errt { + if e == nil { + batts = append(batts, batteries[i]) + } else { + log.Printf("recoverable error fetching battery info; skipping battery: %v", e) + } + } + if len(batts) < 1 { + log.Print("no usable batteries found") + return + } + batteries = batts + } } for i, battery := range batteries { id := makeId(i) |