plugin/battery: fix handling of multiple batteries with upower
#2105
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This should fix both our BATS tests as well as the
battery_percentage()
(and related) function(s) to properly handle multiple attached batteries, and closes #2104.Motivation and Context
The previous fix for multiple batteries returned by
upower -e
just tried to snip off the first line and run with it, but this seems to have triggered a bug in Bash related toset -o pipefail
(which is enabled by BATS during testing, and elsewhere).This patch changes
plugin/battery
to just read all the batteries into an array, thus not cutting off the enumeration prematurely and avoiding the testing bug.Currently, this patch does not handle any batteries after the first, but at least it doesn't just trim the list.
How Has This Been Tested?
locally, and GitHub Actions
Types of changes
Checklist:
clean_files.txt
and formatted it usinglint_clean_files.sh
.